关于“无法解析的外部符号”的解决方案?
中才德创 2011-07-28 10:07:51 有个项目,导进了一些外来的.h.cpp,结果发现:
1>------ 已启动生成: 项目: Demo, 配置: Debug Win32 ------
1>正在链接...
1>ComPort.obj : error LNK2001: 无法解析的外部符号 __imp__SetupDiGetClassDevsA@16
1>F:\test\Demo\Debug\Demo.exe : fatal error LNK1120: 4 个无法解析的外部命令
1>生成日志保存在“file://f:\test\demo\Debug\BuildLog.htm”
1>Demo - 9 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
查MSDN:
Windows Driver Kit: Device Installation
SetupDiGetClassDevs
Requirements
Headers: Declared in setupapi.h. Include setupapi.h.
但为什么,#include <setupapi.h>添加了,毫无效果?
在“Demo 属性页-》配置属性-》链接器-》输入-》附加依赖项”增加setupapi.lib。才解决问题。
此时,#include <setupapi.h>也不用加了。
问题:
1)MSDN说的需要一头文件,却不说需要一lib文件。这是为何?再者,下次,是不是加头文件无效,就加个lib试试?
2)加了lib,这个头文件却可加可不加,这又是为什么?