关于“无法解析的外部符号”的解决方案?

中才德创 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,这个头文件却可加可不加,这又是为什么?
...全文
2309 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
中才德创 2011-07-28
  • 打赏
  • 举报
回复
在另外一台电脑的MSDN,有说需要lib的。真是不解。
Requirements
Client Requires Windows XP, Windows 2000 Professional, Windows Me, or Windows 98.
Server Requires Windows Server 2003 or Windows 2000 Server.
Header Declared in Setupapi.h.

Library Link to Setupapi.lib.

DLL Requires Setupapi.dll.
Unicode Implemented as SetupDiGetDeviceRegistryPropertyW (Unicode) and SetupDiGetDeviceRegistryPropertyA (ANSI).
fyz2841585 2011-07-28
  • 打赏
  • 举报
回复
还是觉得楼主要看一下lib库是怎么生成的,里面是什么结构。
http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/698632.html
ouyh12345 2011-07-28
  • 打赏
  • 举报
回复
2)加了lib,这个头文件却可加可不加,这又是为什么?

头文件也得要加,不然编译通不过
头文件声明了变量和函数,lib里有它们的链接
ouyh12345 2011-07-28
  • 打赏
  • 举报
回复
1)MSDN说的需要一头文件,却不说需要一lib文件。这是为何?再者,下次,是不是加头文件无效,就加个lib试试?

说了啊,例如send:
Requires Windows Server 2008, Windows Server 2003, Windows 2000 Server, or Windows NT Server.

Header
Declared in Winsock2.h.

Library
Use Ws2_32.lib.

DLL
Requires Ws2_32.dll.

我才是心翼 2011-07-28
  • 打赏
  • 举报
回复
http://www.cnblogs.com/52yixin/articles/2094780.html

不晓得我写的这个能帮忙上不
quwei197874 2011-07-28
  • 打赏
  • 举报
回复
vc的话添加成依赖关系,程序会自动寻找相应的lib
呔妖怪来嘛 2011-07-28
  • 打赏
  • 举报
回复
setupapi.lib
xxq123321 2011-07-28
  • 打赏
  • 举报
回复
要看函数是否存在
如果存在,是否实现了该函数

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧