用vc实现usb接口读写数据的程序

用vc实现usb接口读写数据的程序

ID:22748258

大小:165.50 KB

页数:13页

时间:2018-10-31

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

《用vc实现usb接口读写数据的程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用VC++实现USB接LI读写数据的程序2009-08-1511:55用VC++实现USB接口读写数据的程序使川一个GUIDguidIIID_l查找并打幵一个USB设备extern〃C〃intPASCALSearchUSBDevice(){HANDLEhUsb;intnCount,i,j;//标记同一设各个数HDEVINFOhDevInfoSet;BOOLbResult;PSPDEVICE.INTERFACEDETAILDATApDetail=NULL;memset(msysversion,0,20);GetSysVersion(

2、m_sysversion);//检索相关GUID的L*SB设备总设备个数if(!GetUSBListO){return0;}//取得一个该GU1D相关的设备信息集句柄hDevInfoSet=::SetupDiGetClassDevs((LPGUTD)&guidHTD1,//GUTDCLASSUSBDEVTCE,//classGUIDNULL,//无关键字NULL,//不指定父窗口句柄DIGCFPRESENT

3、DIGCF_DEVICEINTERFACE)://目前存在的设备//失败…if(hDevInfoSet==INVALID_H

4、ANDLE_VALUE){returnNULL;//中请设备接口数据空间nCount=0;bResult=TRUE;for(i=0;i〈34;i++){bDeviceOpen■=■FALSE;memset(mDeviceDesc,0,256);SPDEVICEINTERFACEDATAifdata;//设备序号=0,1,2...逐一测试设各接11,到失败为止while(bResult)ifdelta.cbSize=sizeof(ifdata);//枚举符介该GUID的设备接HbResult=::SetupDiEnumDevicei

5、nterfaces(hDevInfoSet,//设备信息集句柄NULL,//不需额外的设备描述(LPGUID)&guidHlD1,//GUIDCLASSUSBDEVICE,//GUJD(ULONG)nCountf//设备信息集里的设备序号&ifdata);//设备接口信息if(bResult){ULONGpredictedLength=0;ULONGrequiredLcngth=0;//取得该设备接口的细节(设备路径)bResult=SetupDiGetinterfaceDeviceDetail(hDevlnfoSet,//设备信

6、息集W柄&ifdataf//设务接H信息NULL,//设备接口细节(设备路径)0,//输出缓冲区大小&requiredLength,//不需计算输出缓冲K大小(白:接用设定位)NULL);//不需额外的设备描述//取得该设各接H的细节(设备路径)predicledLcngth=rcquiredLcnglh;//if(pDetail)//{//pDetail=NULL;//}pDetail=(PSP_INTERFACE_DEVICE_DETAIL_DATA)::GlobalAlloc(LMEM_ZEROINIT,predictedL

7、ength);pDetai卜〉cbSize=sizeof(SPDEVICEINTERFACEDETAILDATA);bResult=SetupDiGetlnterfaceDeviceDetail(hDevlnfoSet,//设各信息銀句柄&ifdata,//设备接口信息pDetail,//设备接口细节(没备路径)predictedLength,//输出缓冲K大小&requiredLength,//不需计算输出缓冲lx:大小(宜接用设定值)NULL);//不需额外的设备描述if(bResult){//货制设备路径到输出缓冲区//::

8、strcpy(pszDevicePath[nCount],pDetail-〉DevicePath);if(strcmp(ni_sysversion,^winnt")==0){charch[18];for(i=0;i〈17;i++){ch=*(pDetail->DevicePath+8+i);}ch[17]=f;if(strcmp(ch,〃vid_0471d_0666〃)==0)//比较版本号,防止点外出错memset(&READ_OS,0,sizeof(OVERLAPPED));memset(miTEOS,0,sizeof(O

9、VERLAPPED));READOS.hEvent=CreateEvcnt(NULL,//nosecurityTRUE,//explicitresetreqFALSE,//initialeventresetNULL)://nonameif(READ

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

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

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