无法解析的外部符号,VC2005链接错误解决办法

信息载入中.....

今天在生成一个工程的时候,编译没有问题,但是在链接的时候出了问题,出现了无法解析的外部符号,错误提示如下:

error LNK2019: 无法解析的外部符号
_imp__SetupDiGetDeviceInterfaceDetailW@24
error LNK2001: 无法解析的外部符号
“private: static struct _OVERLAPPED
CUsbCom::g_WriteOverlapped”

既然编译通过了,就说明了没有语法错误,不用在代码中死抠语法了。从错误中提示中找原因吧。

SetupDiGetDeviceInterfaceDetailW是程序中调用的一个函数,MSDN一下,应用此函数需要Setupapi.lib头文件,这个已经包含(不然编译也不能通过),再往下看发现需要Setupapi.lib或Setupapi.dll库。手动添加,项目->属性->配置属性->链接器->输入 然后在附件依赖项添加Setupapi.lib,再生成第一个无法解析的外部符号错误消失了。

g_WriteOverlapped是我定义的一个类的静态数据成员,原来是没有初始化,在类的.cpp文件中,函数体外初始化g_WriteOverlapped,再生成没有错误了。

There are No comments.

leave a reply

All fields marked with " * " are required.