xfrui
驱动牛犊
驱动牛犊
  • 注册日期2003-05-04
  • 最后登录2005-09-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1904回复:3

请教USB应用程序的编译

楼主#
更多 发布于:2004-05-05 21:47
我用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的源代码在我这儿编译也是出现类似错识,是我的编译器设置错识?请各位高手给点指点
万分感谢!
xfrui
驱动牛犊
驱动牛犊
  • 注册日期2003-05-04
  • 最后登录2005-09-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-05 21:54
另外,我用ZLG的驱动,用bus hounds可以对我的板子的bulk out端点输出数据,应用程序中应该怎么对EP2 out写呢?我在这里查了好多贴子,但是好象都帮助不大,有没有哪位兄弟能提供一个完整的D12的bulk out的源代码?
我的信箱:xfrui@163.com
THX
shaoshengli
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2022-02-14
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望77点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-05-06 08:31
我想你可能没装98DDK.
xfrui
驱动牛犊
驱动牛犊
  • 注册日期2003-05-04
  • 最后登录2005-09-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-06 10:02
我装了2000DDK啊,但是好象要在project的setting里设置些什么,我弄不清
游客

返回顶部