阅读:1141回复:0
大家来帮下忙.
前提:
1.VenderID和ProductID VenderID :108F (HEX) ProductID :3000 (HEX) 为了能共同使用这个ProductID,在发送命令时确认对方机器名时必要的。用下面的命令进行机器确认。 命令: "QPID" + CrLf 回答: "3455" + CrLf 2.送来的文件(USB驱动) USB 驱动 HiUsbSgl.sys HiUsbSgl.inf USB 驱动用 DLL文件 HiUsbSgl.dll 3.关于USB 驱动用DLL文件 (1) long CheckUSBDevices(LPVOID lpDevSerialNo); 处理内容: Devicecheck 参数: lpDevSerialNo 串口序号变数指针 ※ 用char serial[10]、 CheckUSBDevices(serial); 返回值: 0:没有与之相连的Device //怎么判断呢? 1:有一个与之相连的Device //怎么判断呢? 2 以上:有多个与之相连。→ error //怎么判断呢? (2) HANDLE OpenUSBBulkFile(long pipeNo); 处理内容: DeviceOpen 参数: pipeNo 0:发送pipeOpen、1:接收pipeOpen //怎么判断呢? 返回值: HANDLE。(返回值是INVALID_HANDLE_VALUE没有Device) ------------------------------------------------------- 请看我的代码: (这是我与驱动联系上了,没加设备),但是依然没有什么效果. long (CALLBACK*CheckUSB)(LPVOID); HANDLE (CALLBACK*OpenUSBFile)(long); char serial[10]; long pipeNum; HINSTANCE OpenDll = LoadLibrary("HiUsbSgl.dll"); if( OpenDll != NULL ) { CheckUSB = (long(CALLBACK*)(LPVOID))GetProcAddress(OpenDll,"CheckUSBDevices"); OpenUSBFile = (HANDLE(CALLBACK*)(long))GetProcAddress(OpenDll,"OpenUSBBulkFile"); CheckUSB(serial); } //判断连接和是否有设备存在 if( OpenUSBFile == INVALID_HANDLE_VALUE ) { //(为什么没有设备连上,无显示结果??) Application->MessageBox(NULL,"error",error",0); } else { OpenUSBFile(pipeNum); } 请大家帮帮忙 看看怎么回事 ?..谢谢. 另外 他说发送名 函数是用 ReadFile(), 可是命令 用怎么类型呢? TCHAR ? 还是。。。请大家指教, 谢谢了.第一次开发USB这些 确实头疼. |
|
|