做一个WIN32的程序,引用一个USB的库文件中的函数,有个编译问题 [所有相关帖子]
LINK2019, 无法解析的外部错误, 调用的函数的头文件已经包含, 定义的时候是_stdcall的, 调用的时候提示
USBCommunation.obj : error LNK2019: 无法解析的外部符号 "void __stdcall HidD_GetHidGuid(struct _GUID *)" (?HidD_GetHidGuid@@YGXPAU_GUID@@@Z) ,该符号在函数 "void __cdecl USBPortOnSearch(struct HDC__ *,struct tagRECT &)" (?USBPortOnSearch@@YAXPAUHDC__@@AAUtagRECT@@@Z) 中被引用
该函数原型是
void __stdcall
HidD_GetHidGuid (
OUT LPGUID HidGuid
);
我下载了相关的文件, 就是几个.h文件和几个.lib文件,将lib文件添加到编绎环境里面.
hdisdi.h, setupapi.h等,就是网上说的使用USB要用到的库文件.
------解决方案--------------------------------------------------------
先确认一下相关lib是否都已添加到了项目里面,如果仍有问题,可能是由于该库是用C语言写的,在包含该库的头文件时加上extern "C"试试。参考下面的写法:
extern "C" {
#include "xxx1.h"
#include "xxx2.h"
}