基于VISUAL C#的USB接口通信程序设计
- 格式:doc
- 大小:3.56 KB
- 文档页数:2
摘要 :根据《数字图像处理》教学的特点 , 研制开发了相应的实验教学软件 , 涵盖了几乎所有数字图像处理的有关内容和一些较新的研究成果 , 解决了数字图像处理教学中实验环节的矛盾。
软件采用 Visual C++语言编程 , 界面友好 , 具有较强的可移植性和可扩展性 , 可以使得学生形象的理解有关数字图像处理的内容。
关键词 :数字图像处理 Visual C++实验系统杨顺辽收稿日期 :2007年 2月作者简介 :杨顺辽 (1973- , 男 , 长江大学电信学院讲师 , 主要从事图像处理与模式识别方面的教学和研究工作。
(长江大学电信学院湖北荆州 434023 基于 Visual C++的数字图像处理实验软件开发《数字图像处理》是电子信息类专业非常重要的理论课程,是信号处理中一个非常重要的领域, 涉及的理论知识众多。
仅仅通过理论教学学生很难掌握数字图像处理的基本原理, 并且不能得到直观的认识。
因此在数字图像处理的理论教学过程中必须与实验相结合, 使学生通过实验消化和掌握图像处理的原理和用途。
但是图像处理的算法最终要在计算机或其它硬件上实现, 由于学生的编程实际经验限制, 要求学生在短短的实验学时内 (一般一个实验为两个学时编制出相应的程序是不现实的, 因此开发较完善的实验教学系统成为《数字图像处理》课程教学的当务之急。
国内很多高校在《数字图像处理》教学中基本没有实验环节, 开设实验教学的也大都是利用 Pho-toShop 等商用图像处理软件作为实验软件,或把 Matlab 等包含图像处理操作的软件直接用于图像处理实验中。
也有大学自主开发出一些图像处理的实验软件或使用国外图像处理软件作为实验软件, 但包含的内容不太全面。
根据国内图像处理实验软件的现状开发设计本实验软件,包括了图像处理的几乎所有内容, 而且引入了图像处理领域较新的处理成果, 使学生不仅掌握图像处理的基本原理和内容, 也能够了解图像处理的较新研究领域。
摘要本文主要介绍了基于Visual C++环境下的图形开发的基本过程。
画图软件的基本功能包括基本图形绘制和填充(直线、椭圆、三角形、四边形、多边形),更改图元绘制条件(改变线条颜色、线型、填充方式)和图元的保存功能。
要求:实现所见即所得绘图功能;实现图元选择功能;实现图元移动功能;实现画笔和画刷风格认定功能;实现图元修改功能;实现图形文件的存储功能。
能过程序设计以达到提高VC++的编程水平的目的。
计算机图形学是计算机科学的重要分支,真实感图形生成技术更是目前研究的热点。
论文首先简要介绍了Visual C++及其实现技术,绘图程序的构成及主要流程;然后详细介绍了绘图程序的系统设计,并给出了该程序的实现方案及技术细节,包括运行环境的配置及各个功能模块的实现细节等。
关键字:MFC,程序框架,用户界面,VC++AbstractThe main body of a book has been introduced mainly owing to development fundamental lower Visual C++ environment artwork process.Draws the software the basic function including the basic graph plan and the packing (straight line, ellipse, triangle, quadrangle, polygon), change chart Yuan plan condition (change line color, linear, packing way) and chart Yuan preservation function.Request: The realization sees namely the obtained cartography function; Realization chart Yuan choice function; Realization chart Yuan migration function; Realizes the paint brush and the picture brushes the style to recognize the function; Realization chart Yuan revision function; Realization graphic file memory function.Can the programming achieve enhances VC++ the programming level goal.Computer graphics is important computer science branch , that graphics of realistic rendering generates a technology is the hot spot studying at present more. First brief Basic having introduced Visual and their formation and main technological process realizing the technology , the procedure drawing of thesis; The system having introduced the procedure drawing's then detailedly has been designed , has given out and owing the procedure realization the scheme and technology detail , realizing detail including running the environment allocation and each functions module and so on.Keywords:MFC, procedure frame, user interface, VC++目录摘要 (I)Abstract (II)目录 (II)前言 (1)1 系统开发目的和开发平台 (2)1.1 VC++6.0开发平台简介 (2)1.2 C++程序开发语言简介 (2)1.3 系统开发内容 (2)1.4 Visual C++的发展 (4)2 面向对象程序设计简介 (6)2.1面向对象程序设计的发展 (6)2.2 面向对象程序设计语言 (7)2.3 C++对面向对象技术的支持 (7)2.3.1 C++对封装机制的支持 (7)2.3.2 C++对继承机制的支持 (8)2.3.3 C++对多态机制的支持 (8)3 画图系统的分析与实现 (9)3.1设计说明书 (9)3.2系统功能设计 (10)3.2.1 程序功能模块 (10)3.2.2 系统界面设计 (11)3.3系统功能的实现 (15)3.3.1图元数据的定义 (15)3.3.2实现所见即所得绘图 (16)总结 (25)致谢 (26)参考文献 (27)前言Visual C++作为程序设计的入门语言,具有易学易懂的特点。
43计算机教育Computer Education第 5 期2020 年 5 月 10 日中图分类号:G642基于Visual Studio Code 的C 语言程序设计实践教学探索陈常念,孔维广,曹剑文,柳 威(武汉纺织大学 数学与计算机学院,湖北 武汉 430074)摘 要:针对当前主流C 语言实践环境对实践教学支持不够的问题,提出基于Visual Studio Code 的实践教学观点,阐述其从兴趣引导、编程乐趣和编程效率提升等方面如何有效地支撑C 语言实践教学,说明新环境有更好的教学效果。
关键词:C 语言程序设计;Visual Studio Code;实践教学0 引 言“新工科”建设正在引领新一轮的教育创新变革[1],计算机专业课程的建设也已提档加速。
在工程教育认证背景下,双一流高校已经在系统能力培养和解决“复杂工程问题”能力培养上大步向前[2-3];地方院校也在积极向新要求看齐,努力发展适合自身的专业培养体系。
不难看出,新时代下对专业人才培养要求标准更高、过程把控更细、综合性更强、执行难度也更大。
地方院校在专业师资、学生能力、财政投入等方面均处于劣势的情况下,如何奋力追赶,不落后不掉队,甚至办出特色,是摆在地方院校面前的一道难题。
在有形条件短期内无法大幅提高的情况下,积极吸纳公共教育教学资源为我所用成为必然的选择。
在当前的教育思考中,MOOC 、SPOC 、翻转课堂、混合式教学等创新型教学模式正如火如荼地进行,新的教学辅助平台和评测方法不断涌现。
打破教学思维惯性,积极拥抱新的教育方法和教学手段成为了教育者的共识。
程序设计类课程尤其应如此,作为受众广泛的基本技能型课程,国内外线上优质教育资源数不胜数,如何有效消化吸收,通过合理的编排和组织,应用于课程教学成为大家关注的重点。
在实践教学过程中,“以学生为中心、以编程思想和实践训练为重点”[4],“大小周期相结合实践教学方法”[5],“基于SPOC 的复合型实验教学模式”[6]等方法不断被提出。
摘要随着计算机技术和网络技术的普及和发展, GIS是地理信息系统(Geographical Information Sys-tem)的简称, GIS作为采集、分析、处理空间数据的计算机信息系统,正在被广泛应用到各个行业中。
它是一种将空间位置信息与属性数据相结合的系统。
在实际应用中,以GIS技术为基础的应用软件已广泛用于军事、商业、航空等多种领域。
本系统采用MapInfo作为后台的服务器来提供应用中的可视化数据和地图,在Visual Studio 2008平台下,以VC++作为前台的开发工具进行实际的编程,负责处理事件的响应和控制MapInfo,MapInfo构建地图空间数据,将不同的空间数据图层通过GeosetManager整合集成,通过MapX地图控件的二次开发实现地理信息系统。
软件系统除了具备基本的缩放、移动等功能外,还有鹰眼功能即实现每个部位的查询功能,还实现对监测目标的实时定位等功能,实现基于MapX的地理信息系统(GIS)开发技术相结合来开发电子地图,既方便灵活,又增强了软件的功能和可视效果。
关键字: 地理信息系统组件VC++ABSTRACTWith the popularization and development of computer technology and network technology, GIS is the geographic Information system (Geographical Information Sys - tem) abbreviation, GIS as the collection, analysis and processing spatial data of computer Information system, is widely applied to various industries. It is a combining spatial location information and attribute data of system. In practice, based on the GIS application software has been widely used in military, commercial, aerospace and other fields.This system adopts the MapInfo as a background of application server to provide a visualization of data and maps, in Visual Studio2008 platform, with vc + + as development tools for the actual programming at the front desk, responsible for dealing with incident response and control of MapInfo, MapInfo spatial data maps, integrating different spatial data layer through GeosetManager integration, through the MapX map controls the secondary development of geographic information system. Software systems in addition to the basic function such as scaling, moving, and hawkeye function the function of every part of the query is achieve to monitor real-time positioning, and other functions, implementation based on MapX, combined with the geographic information system (GIS) development to develop the electronic map, both convenient and flexible, and enhance the software's function and visual effect.Keywords:Geographic Information System components vc++目录第一章绪论 (1)1.1背景 (1)1.2应用价值 (1)1.3开发运行环境及相关理论知识 (1)1.3.1运行环境 (1)1.3.2开发工具及平台 (2)1.3.3 Netbeans7.1简介 (2)1.3.4 MapX简介 (2)第二章需求分析 (3)2.1可行性研究 (3)2.1.1经济可行性分析 (3)2.1.2技术可行性分析 (3)2.1.3社会可行性分析 (3)2.2系统目标 (4)2.2.1 GIS的定义 (4)2.2.2 GIS系统组成 (5)2.3功能需求分析 (5)2.3.1数据通讯协议分析 (7)2.3.2 移动终端程序分析 (8)2.3.3 WebService转发地理数据程序分析 (8)2.3.4 GIS地理信息系统分析 (9)第三章概要设计 (11)3.1整体结构设计 (11)3.2系统整体结构图设计 (11)3.3 GIS地理信息系统结构功能图设置 (12)第四章数据结构设计 (13)4.1 TAB数据结构介绍 (13)4.2利用GeoSet Manager集成地图 (14)4.3本系统用到数据文件 (14)第五章界面设计 (15)5.1移动终端设计 (15)5.1.1移动终端界面设计 (15)5.1.2程序跳转关系 (16)5.2 GIS地理信息系统界面设计 (16)5.2.1菜单设计 (16)5.2.2工具栏设计 (18)5.2.3 状态栏设计 (18)5.2.4 View视图设计 (19)第六章详细设计与实现 (20)6.1 GPS地理数据发送程序 (20)6.2 Servlet转发数据程序 (21)6.3 GIS地理信息系统 (21)6.3.1地理信息系统缩放实现 (22)6.3.2地理信息系统鹰眼图实现 (23)6.3.4地理信息系统实时定位实现 (24)第七章系统测试 (26)7.1测试目的 (26)7.2软件测试的内容 (26)7.3软件测试的步骤 (26)7.4功能模块调试 (27)7.5集成测试 (27)总结 (28)致谢 (29)参考文献 (30)第一章绪论1.1背景随着计算机技术的飞速发展,地理信息系统(GIS)技术也不断地取得进步,其应用范围也越来越广泛。
CAD/CAPⅣCAM/CAE基于VisualC++的SolidWorks三维标准件库口邹昌平黄志真孙翠微口赵建波摘要以solidworks2【】01和windows98为平台,采用vjqldc十+、MkrosoftExcel和Mic啪曲Acc髓s等开发工具,应用面向对象的程序开发方法,开发出一个具有可扩展性和实用性的三维标准零件库。
关键词:(:AD面向对象三维标准件库solidworlcsvisu丑lc++中图分类号:1P39172文献标识码:A文章编号:1671—3133(2002110_—004l_仍Developnlentstmte酊oftl他SolidWorI【s3-Dstandard阳rtⅡbl甚ryba【sedonvisualC++口‰uam唧iIlg。
HuaIlgZl-iz|I饥。
S咖Cldwei口Zh肿Ji蛐boAbstractBaseds0Mw—m2001andWif讨dws98,ad0肿suchdevelopingim—e眦血asVi蚴lc++,Micr08mExcelandMi-m80fcAcce略-L踟sobjed州etTfed口w8珊mrIgf耻dled-}Ia8de州or—a3一Dnmldaldpar【libmrywithe删bililyarldpraclical时}姊唧ords:(1tDo啉t肿i既Ited3一DsIl叫岫柑parc曲呻洲wor虹V缸umC++一、前言众所周知,在产品设计中,要使用人鼍的标准件。
但目前优秀的三维cAD软件还是国外产品一统天下.而国外三维cAD软件本身都不带有同家标准零件库,所以,标准零件库的开发是其二次开发的一个必不可少的部分。
本文的二次开发平台选用的是三维设计软件系统solidWorks。
选用该系统主要是基于以下几方面考虑:1)其是当今世界基于NT/willdo一甲台的三维机械设计cAD软件系统的主流产品,目前已在国内外中小型企业中得到J“泛应用;2)易学、易用,操作过程直观、简单,功能强大;3)完伞汉化,无任何使用过程中的语言障碍;4)可向下兼容二维AutocAD,使得以前采用Au.tocAD进行的设计得以继续使用和转化;5)根据需求,可以很方便地利用vB和vc++对其进行二次开发;6)与其它三维设计软件系统具有非常好的兼容性;7)其软件开发商与世界许多著名的软件开发公司保持有很好的合作伙伴关系,使得它成为一个开放性的系统,可以很方便地进行后续的有限元分析和动力学分析披数控加工。
广西工学院毕业设计(论文)说明书题目名称:The study of the ways to recgonize the pictures on the basic of visual C++(英文)基于Visual C++的图像处理方法的研究(中文)系别电子信息与控制工程系专业自动化班级自动化074学号姓名指导教师年月日摘要所谓图像识别,就是图像经过一系列的处理最终达到可以识别(人眼或者机器识别)的目的。
图像处理与识别广泛应用于交通、遥感、工业检测、生物医学、地质等许多领域。
图像以各种各样的形式存在于我们的生活中,给我们带来了多种多样的信息,我们采用各种各样的方法来获得图像,获得我们需要的信息,我们还可以通过处理我们所得到的信息(文字、声音、图像等)来得到我们未知道的重要的信息。
随着科学技术的迅猛发展,对图像处理的技术也越来越丰富,技术越来越优越。
本文旨在讨论图像的各种处理方法在数字图像识别中的应用。
并以Visual C++软件为平台,结合数字图像处理技术,创建自己的工程,广泛搜集大量代码,进行编译和调试,并构造出一个数字图像处理的系统,实现对图像的各种处理(包括图像变换、图像增强、图像分割等),从而达到图像识别的目的。
关键词:数字图像 VC++ 处理编程图像识别AbstractThe so-called image recognition, eventually reach is image after a series of processing eventually reach can identification (eye or machines recognition) purpose. Image processing and recognition are widely used in traffic, remote sensing, industrial detection, biological medicine, geology, and many other areas. Image in various forms exist in our life, brings us a variety of information, we adopt various methods to obtain images, we can also by dealing with what we get information (text, audio, images, etc) to get us not know important information. With the rapid development of science and technology, the technology of image processing and richer also, technology is more and more superior.This paper aims to discuss the image in methods of processing the application of digital image recognition. And with Visual c++ software platform, with digital image processing technology, create your own project, widely collected lots of code, compile and debugging, and construct a digital image processing system, to achieve various processing image (including image transformation, image enhancement, image segmentation, etc), So as to achieve the purpose of image recognition.Keywords: Digital image Vc++ processing programmingImage recognition目录第一章绪论 (4)1.1图像和图像处理 (4)1.1.1 图像的概念 (4)1.1.2 图像处理 (4)1.1.3 数字图像处理的步骤 (4)1.1.4 数字图像处理的组成 (4)1.1.5 数字图像处理的主要应用 (5)1.1.6 本文的主要工作 (6)第二章 Visual C++软件概述 (7)2.1 VC++特点 (7)2.1.1 封装性 (8)2.1.2 继承性 (8)2.1.3 多态性 (8)2.2 Visual C++数字图像编程基础2.2.1 调色板................................................................... (8)2.2.2 色彩系统................................................................ (9)2.3 GDI位图和设备无关位图DIB (11)2.4 构造属于自己的DIB函数库 (11)第三章图像变换 (12)3.1 图像几何变换的一般表达式 (12)3.1.1 图像的平移 (13)3.1.2 图像的正交变换 (13)第四章图像增强 (14)4.1 图像平滑 (15)4.1.1 空域模板平滑法 (15)4.1.2 频域低通滤波法 (15)4.2 图像锐化 (16)4.2.1 梯度锐化 (16)4.2.2 拉普拉斯锐化 (17)第五章图像的压缩编码 (19)5.1 图像压缩编码的概念 (19)5.2 图像压缩的可能性 (19)5.3 哈佛曼编码 (19)5.4 香农-弗诺编码 (19)第六章图像分割 (20)6.1 灰度图像分割的依据 (20)6.2 边缘检测 (21)6.3 阈值分割算法 (21)第七章图像的识别 (25)7.1 图像匹配 (25)7.1.1 模板匹配 (26)7.1.2 基本算法 (26)7.2 模板匹配识别实例 (27)7.2.1 模板的获取 (27)7.2.2 模板的匹配 (27)7.3 其他快速算法概述 (28)7.4 模式识别 (28)7.4.1 统计模式识别 (28)7.4.2 结构模式识别 (29)结束语 (30)参考文献 (31)致谢 (32)附录 (33)基于Visual C++的图像识别方法的研究第一章绪论1.1 图像和图像处理1.1.1 图像的概念“图”是物体透射或反射光的分布,是客观存在的。
基于VisualC++网络编程开发与应用摘要:随着计算机软件工程技术的不断的飞速发展,网络进入了我们生活中的每一个人,在工作中,我们采用了电子邮箱的发送信函,在生活中我们采用了qq聊天工具,方便丰富了我们的生活。
计算机、网络通讯给带来的改变,标志着人类进入到信息时代。
各种网络应用软件的不断的融入到我们的日常生活中,在不久的将来,互联网即将成为整个it产业的中心,网络编程已经成为当代软件开发的主流方向。
本文主要是研究smtp协议和pop3协议,通过一个邮件的发送系统介绍foxmail转发系统的开发过程。
关键词:visualc++;网络编程;开发与应用中图分类号:tp393文献标识码:a文章编号:1007-9599 (2013) 06-0000-02自从互联网诞生的那一刻起,人们之间日常交互的方式又多了一种新的快捷的方式。
从此以后带给人们的是更迅速快捷更加实时性的电子邮件。
例如:qq、msn和邮件技术,其中以电子邮件更为人们所青睐。
1基于visualc++技术开发的邮件传输协议介绍邮件协议:邮件发送功能是基于邮件协议的,常见的电子邮件协议有smtp(简单邮件传输协议)、pop3(邮局协议)、imap(internet邮件访问协议)。
这几种协议都是由tcp/ip协议族定义的。
1.1pop;是postofficeproocol的缩写,目前的版本为pop3,pop3是把邮件从电子邮箱中传输到本地计算机的协议。
1.2imap:是internetmessageaccessprotocol的缩写,目前的版本为imap4,是pop3的一种替代一协议,提供了邮件检索和邮件处理的新功能,这样用户可以完全不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。
imap协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户查看电子邮件的时间。
基于VC的一种简单木马的设计摘要目前,Internet已经得到非常广泛的使用,但是同时,各种黑客工具和网络攻击手段也层出不穷。
黑客入侵给人们造成的各种损失也越来越大,其中木马就是被广泛使用的黑客工具之一,它对网络安全造成了极大的威胁。
本毕业设计使用VC++ 6.0为开发平台设计的一个简单的木马程序,主要实现了获取远程被控计算机的基本信息、锁定其鼠标和键盘、注销重启和关闭被控计算机、隐藏并开启其任务栏、向被控计算机发送消息等功能。
本论文从选题背景入手,介绍了与本系统相关的一些理论知识,以及开发工具,随后详细介绍了该木马程序的开发过程,包括服务端/客户端的socket编程,木马服务端和客户端通信的实现,以及实现远程控制的各种具体功能的实现。
最后对系统进行测试,并对所做工作进行总结。
关键词:木马;远程控制;VC;Windows SocketThe Design of the Trojan Horse Based on Visual CAbstractWith the popularization of the Internet and the development of its application, various kinds of Internet-attacking methods are appeared. These Internet-attacking have seriously damaged the machines and the Internet users. The Trojan horse is one of the popular tools used by hacker and influenced the network security more and more.In this design a simple Trojan horse is developed with Visual C++ 6.0. The primary function includes: getting system information of the long-distance computer, locking its mouse and keyboard, rebooting logout and turn off the computer, hiding taskbar, sending message, catching and killing the process and so on.In this paper, the background and the development technology is introduced at first, and then it introduces the design process of the Trojan Horse, includes socket programming of the server and client, communication between the server and client and implementation the function in detail.Key words:Trojan Horse; Long-distance control; VC; Windows Socket目录论文总页数:26页1 引言 (1)2 相关技术介绍 (1)2.1开发环境VC++6.0 (1)2.2套接字S OCKET编程原理 (1)2.3木马基本原理 (3)2.3.1木马定义 (3)2.3.2木马发展 (3)2.3.3木马基本组成 (4)2.3.4C/S客户服务器模式 (4)2.3.5木马入侵过程 (5)3 系统设计 (7)3.1系统总体设计 (7)3.1.1设计目标 (7)3.1.2功能介绍 (8)3.2具体功能实现 (9)3.2.1获取信息功能 (9)3.2.2清除信息 (10)3.2.3锁定鼠标和键盘 (10)3.2.4注销、重启和关机 (11)3.2.5隐藏并开启任务栏 (13)3.2.6发送消息 (16)3.2.7查看进程 (17)3.2.8木马的伪装 (20)4 系统测试 (23)结论 (24)参考文献 (24)致谢 (25)声明 (26)1引言以Internet为代表的全球性信息化浪潮日益高涨,信息网络技术的应用正日益普及,伴随网络的普及,安全问题日益成为影响网络效能的重要问题。
摘要:详细介绍了usb接口的特点以及接口通信流程,研究在microsoft visual studio 2008环境下,运用visual c #调用windows api 函数方法进行usb接口通信程序设计的一般方法。
关键字:c#usb通信接口
中图分类号:tp311.1 文献标识码:a 文章编号:1007-9416(2010)08-0090-02
1 hid、usb介绍
hid(human interface device)类设备即人机接口设备,是usb设备类型中的一种,是直接与人交互的设备,如键盘、鼠标等。
hid类设备并不一定是标准的外设类型,只要交换的数据格式存储在报文的结构中,并且设备固件支持报文的格式,则任何工作在该限制之内的设备均可称为hid设备,如电压计、温度计、读卡器等。
hid设备与主机交换数据使用“报表”结构,报表格式富有弹性,可以处理任何类型的数据;一个报表可以使用多个事务,每笔事务可以携带小量和中量的数据,高速设备每笔事务最大是1024 b;主机定时轮询设备,设备可以为预期的时间传送信息给主机,hid设备除了传送数据给主机外,也会从主机接收数据。
usb协议定义和支持音频设备类、通信设备类、显示设备类、人机接口设备类(hid)和海量存储设备类等设备类型。
hid是windows完全支持的第一批usb设备类型,在运行win 98以上版本的pc机上,应用程序可以与使用操作系统内置驱动的hid类设备通信。
因此,基于hid类设计的usb设备易于设置和运行。
2 usb人机通信开发方法
hid运行在windows98以上版本操作系统的pc机中,系统除了提供通用的usb设备的底层驱动以外,还单独提供了一些hid设备的完整驱动,应用程序可以很容易的与操作系统内部的hid通讯。
这样使得符合hid类的usb设备很容易开发与运行。
也就是说,我们如果想实现一个usb的hid类设备,不需要在windows下开发自己的驱动程序。
usb设备通信开发是在程序中调用一系列windows api函数(以下简称api函数),通过系统自带的hid驱动程序访问hid设备。
windows提供了api函数来启动应用程序与设备驱动程序之间的通信,可以使用任何能访问api函数的编程语言,如vb,c/c++,c#,delphi等编写的应用程序,在设备驱动程序的支持下,调用readfile、writefile等api函数来对usb设备进行读写操作。
windows用来与hid设备通信的api函数,包含在hid.dll、setupapi.dll、kernel32.dll 3个dll文档中,分别起到与hid设备通信、寻找与识别设备、交换数据的作用。
usb人机通信可以概括为查找hid设备接口、识别hid设备、取得设备接口路径、获取设备接口详细信息、打开设备、设备读写操作等部分。
3 visual c#实现usb接口通信程序设计实例
本文的通信程序在windows2003环境下使用microsoft visual studio 2008进行开发,下面进行详细介绍。
3.1 启动microsoft visual studio 2008,新建一个项目类型为visual c #的工程。
3.2 调用hidd_gethidguidd函数获取设备的标识符(guid)
在计算机系统中可能存在多个hid设备,在实现通信前程序首先要做的是找到所需要的hid设备。
在windows系统中,所有的hid设备都属于hid类设备。
hid类设备是通过guid 在系统中唯一标识的,它是一个128 位值,每一位唯一表示了一个对象。
调用函数hidd_gethidguid可获得hid类设备的标识,通过这个api 函数就可以从系统中读取该值,下
面程序代码是c#调用windows的ap的函数获得guid
[dllimport("hid.dll")]//使用dllimportattribute特性来引入api函数
public static extern void hidd_gethidguid(ref guid hidguid);
guid guidhid = guid.empty;
guid结构体声明如下:
typedef struct guid {
long data1;
shart data2;
shart data3;
char data4
};
3.3 获取已经连接的hid信息结构体数组
hidd_gethidguid使得应用程序获得一个系统的hid信息guid,然后调用setupdigetclassdevs函数,将上一步获得到的guid结构作为参数传入,将返回一个包含所有已连接并检测通过的hid,该值包含其信息的结构数组的地址,它在下一个将要调用的函数setupdienumdevicelnterfaces中将使用到。
下面是c#调用api函数获得hid信息[dllimport("setupapi.dll", setlasterror = true)]
public static extern intptr setupdigetclassdevs(ref guid classguid, uint enumerator,intptr hwndparent, digcf flags);
intptr hdevinfo;
3.4 识别每个hid接口
利用setupdigetclassdevs函数的返回值devlnfoset得到一个指向设备信息集的句柄,即所有已连接并检测过的hid。
函数返回的设备信息集包含所有当前安装在系统上且匹配所给参数的设备。