用VC++实现USB接口读写数据的程序

用VC++实现USB接口读写数据的程序

ID:38796474

大小:60.50 KB

页数:14页

时间:2019-06-19

用VC++实现USB接口读写数据的程序_第1页
用VC++实现USB接口读写数据的程序_第2页
用VC++实现USB接口读写数据的程序_第3页
用VC++实现USB接口读写数据的程序_第4页
用VC++实现USB接口读写数据的程序_第5页
资源描述:

《用VC++实现USB接口读写数据的程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用VC++实现USB接口读写数据的程序2009-08-1511:55用VC++实现USB接口读写数据的程序使用一个GUIDguidHID_1查找并打开一个USB设备extern"C"intPASCALSearchUSBDevice(){HANDLEhUsb;intnCount,i,j;//标记同一设备个数HDEVINFOhDevInfoSet;BOOLbResult;PSP_DEVICE_INTERFACE_DETAIL_DATApDetail=NULL;memset(m_sysversion,0,20);GetS

2、ysVersion(m_sysversion);//检索相关GUID的USB设备总设备个数if(!GetUSBList()){return0;}//取得一个该GUID相关的设备信息集句柄hDevInfoSet=::SetupDiGetClassDevs((LPGUID)&guidHID_1,//GUID_CLASS_USB_DEVICE,//classGUIDNULL,//无关键字NULL,//不指定父窗口句柄DIGCF_PRESENT

3、DIGCF_DEVICEINTERFACE);//目前存在的设备//失败...

4、if(hDevInfoSet==INVALID_HANDLE_VALUE){returnNULL;}//申请设备接口数据空间nCount=0;bResult=TRUE;for(i=0;i<34;i++){bDeviceOpen=FALSE;memset(m_DeviceDesc,0,256);}SP_DEVICE_INTERFACE_DATAifdata;//设备序号=0,1,2...逐一测试设备接口,到失败为止while(bResult){ifdata.cbSize=sizeof(ifdata);//枚举符合该G

5、UID的设备接口bResult=::SetupDiEnumDeviceInterfaces(hDevInfoSet,//设备信息集句柄NULL,//不需额外的设备描述(LPGUID)&guidHID_1,//GUID_CLASS_USB_DEVICE,//GUID(ULONG)nCount,//设备信息集里的设备序号&ifdata);//设备接口信息if(bResult){ULONGpredictedLength=0;ULONGrequiredLength=0;//取得该设备接口的细节(设备路径)bResult=S

6、etupDiGetInterfaceDeviceDetail(hDevInfoSet,//设备信息集句柄&ifdata,//设备接口信息NULL,//设备接口细节(设备路径)0,//输出缓冲区大小&requiredLength,//不需计算输出缓冲区大小(直接用设定值)NULL);//不需额外的设备描述//取得该设备接口的细节(设备路径)predictedLength=requiredLength;//if(pDetail)//{//pDetail=NULL;//}pDetail=(PSP_INTERFACE_DE

7、VICE_DETAIL_DATA)::GlobalAlloc(LMEM_ZEROINIT,predictedLength);pDetail->cbSize=sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);bResult=SetupDiGetInterfaceDeviceDetail(hDevInfoSet,//设备信息集句柄&ifdata,//设备接口信息pDetail,//设备接口细节(设备路径)predictedLength,//输出缓冲区大小&requiredLength,//

8、不需计算输出缓冲区大小(直接用设定值)NULL);//不需额外的设备描述if(bResult){//复制设备路径到输出缓冲区//::strcpy(pszDevicePath[nCount],pDetail->DevicePath);if(strcmp(m_sysversion,"winnt")==0){charch[18];for(i=0;i<17;i++){ch=*(pDetail->DevicePath+8+i);}ch[17]='';if(strcmp(ch,"vid_0471&pid_0666")==0

9、)//比较版本号,防止意外出错{memset(&READ_OS,0,sizeof(OVERLAPPED));memset(&WRITE_OS,0,sizeof(OVERLAPPED));READ_OS.hEvent=CreateEvent(NULL,//nosecurityTRUE,//explicitresetreqFALSE,//initialevent

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。