谢朝阳 博士:关于网上下载USBPort程序解决办法

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 23:47:39

相信当你碰到这个问题的时候,DDK ,VC编译环境已经被你搞定了,接下来的问题是编译出错的问题。当你设置编译环境正确的情况下(注意,是设置正确情况下)。编译(还是说编译链接比较专业吧!)后出现如下错误:

Linking...
USBPortDlg.obj : error LNK2001: unresolved external symbol "unsigned char __stdcall HidD_GetAttributes(void *,struct _HIDD_ATTRIBUTES *)" (?HidD_GetAttributes@@YGEPAXPAU_HIDD_ATTRIBUTES@@@Z)
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16
USBPortDlg.obj : error LNK2001: unresolved external symbol "void __stdcall HidD_GetHidGuid(struct _GUID *)" (?HidD_GetHidGuid@@YGXPAU_GUID@@@Z)
Debug/USBPort.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.

USBPort.exe - 7 error(s), 0 warning(s)

     哈哈。。。。。如果你出现的问题跟我的一样的话,那恭喜你,我有可能帮你解决这个问题(虽然我是个菜鸟)

首先,你需要添加hid.lib文件到您的工程(添加办法很简单,如果你比我还菜鸟的话,那就按照如下方法添加:点击project->add to project->files在你安装的DDK中找到这个文件。。。。哈哈。。。。。)

这时候您需要尝试再次编译。。。。哈哈。。。出现错误,跟原来一样。。。。

先别担心。。。我没有欺骗你。接下来还有步骤没完成呢。。。。

然后,在工程源文件里找到USBPortDlg.cpp文件,把该文件最前面部分(文件包含命令)中的#include "hidsdi.h"该成extern "C" {#include "hidsdi.h"} 呵呵。至于为什么,不要问我。。。。你照着做就是了。。。。编译试下。。哈哈哈。。编译出现如下错误:

   ompiling...
USBPortDlg.cpp
F:\毕业设计课题\USB\USBPort\USBPortDlg.cpp(9) : error C2014: preprocessor command must start as first nonwhite space
F:\毕业设计课题\USB\USBPort\USBPortDlg.cpp(186) : error C2065: 'HidD_GetHidGuid' : undeclared identifier
F:\毕业设计课题\USB\USBPort\USBPortDlg.cpp(248) : error C2065: 'HidD_GetAttributes' : undeclared identifier
Error executing cl.exe.

USBPort.exe - 3 error(s), 0 warning(s)

呵呵。现在问题就是只有3个错误了哦。。。。。哈哈。。。接下来您只需按照前面的方法把setupapi.lib这这个文件添加到工程就OK了。。。。。

    小弟不才!侥幸按照上面方法编译成功,若还有问题,请留言。(最后还有必要说下 "C" {#include "hidsdi.h"} 这个东西需要注意下格式):

   extern "C"
{
#include "hidsdi.h"
} 呵呵。格式这样子。。。。。。。因为我没有注意,出现过错误!哈哈。。。。。

假如您的格式是正确的,那么在前面出现的不是3个错误,而是五个错误:

Linking...
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20
USBPortDlg.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16
Debug/USBPort.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.

USBPort.exe - 5 error(s), 0 warning(s)