阅读:1905回复:3
请教USB应用程序的编译
我用ZLG的驱动程序,现在想做个bulk out的测试,我在应用程序中copy了ZLG提供的测试程序的三个文件:device.cpp、GUID829.H、Ioctl.h,测试代码如下:
HANDLE m_hUSBDev = OpenUsbDevice( (LPGUID)&GUID_CLASS_D12_BULK, completeDeviceName); strcat( completeDeviceName, \"\\\\\" ); strcat( completeDeviceName, \"PIPE03\"); if(m_hUSBDev == INVALID_HANDLE_VALUE) { AfxMessageBox(\"测试错误\"); } HANDLE hFile = CreateFile( completeDeviceName, GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, 0, NULL); unsigned char t=WriteFile(hFile,p,64,&writelength,NULL); //批量输出传输 CloseHandle(hFile); 这段代码并没有考虑完全,我只是做个写测试,看看能不能写 但是编译时出现以下错误: Compiling... D12AppTest.cpp D12AppTestDlg.cpp e:\\d12apptest\\usbioctl.h(355) : warning C4200: nonstandard extension used : zero-sized array in struct/union e:\\d12apptest\\usbioctl.h(401) : warning C4200: nonstandard extension used : zero-sized array in struct/union device.cpp e:\\d12apptest\\usbioctl.h(355) : warning C4200: nonstandard extension used : zero-sized array in struct/union e:\\d12apptest\\usbioctl.h(401) : warning C4200: nonstandard extension used : zero-sized array in struct/union Generating Code... Linking... device.obj : error LNK2005: \"void * __cdecl OpenOneDevice(void *,struct _SP_DEVICE_INTERFACE_DATA *,char *)\" (?OpenOneDevice@@YAPAXPAXPAU_SP_DEVICE_INTERFACE_DATA@@PAD@Z) already defined in D12AppTestDlg.obj device.obj : error LNK2005: \"void * __cdecl OpenUsbDevice(struct _GUID *,char *)\" (?OpenUsbDevice@@YAPAXPAU_GUID@@PAD@Z) already defined in D12AppTestDlg.obj device.obj : error LNK2005: \"int __cdecl GetUsbDeviceFileName(struct _GUID *,char *)\" (?GetUsbDeviceFileName@@YAHPAU_GUID@@PAD@Z) already defined in D12AppTestDlg.obj device.obj : error LNK2005: \"void * __cdecl open_dev(void)\" (?open_dev@@YAPAXXZ) already defined in D12AppTestDlg.obj device.obj : error LNK2005: \"void * __cdecl open_file(char *)\" (?open_file@@YAPAXPAD@Z) already defined in D12AppTestDlg.obj device.obj : error LNK2005: \"char * completeDeviceName\" (?completeDeviceName@@3PADA) already defined in D12AppTestDlg.obj device.obj : error LNK2005: _GUID_CLASS_D12_BULK already defined in D12AppTestDlg.obj D12AppTestDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24 device.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24 D12AppTestDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20 device.obj : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20 D12AppTestDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4 device.obj : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4 D12AppTestDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16 device.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16 Debug/D12AppTest.exe : fatal error LNK1120: 4 unresolved externals Error executing link.exe. D12AppTest.exe - 16 error(s), 4 warning(s) 这么多链接错误,好象ZLG的D12test的源代码在我这儿编译也是出现类似错识,是我的编译器设置错识?请各位高手给点指点 万分感谢! |
|
沙发#
发布于:2004-05-05 21:54
另外,我用ZLG的驱动,用bus hounds可以对我的板子的bulk out端点输出数据,应用程序中应该怎么对EP2 out写呢?我在这里查了好多贴子,但是好象都帮助不大,有没有哪位兄弟能提供一个完整的D12的bulk out的源代码?
我的信箱:xfrui@163.com THX |
|
板凳#
发布于:2004-05-06 08:31
我想你可能没装98DDK.
|
|
地板#
发布于:2004-05-06 10:02
我装了2000DDK啊,但是好象要在project的setting里设置些什么,我弄不清
|
|