您的位置:首页 > 其它

链接时出现无法解析的外部符号排错

2014-01-14 15:31 736 查看
链接时出现"无法解析的外部符号, 错误信息(cpp编译出的符号)

BatViewDlg.obj : error LNK2001: unresolved external symbol
"unsigned char __stdcall GetPwrCapabilities(struct SYSTEM_POWER_CAPABILITIES *)"
(?GetPwrCapabilities@@YGEPAUSYSTEM_POWER_CAPABILITIES@@@Z)


用dumpbin观察对应dll/lib的导出符号信息

dumpbin /exports *.dll
dumpbin /exports *.lib


对应的lib/dll的导出符号信息(extern "C" 所编译出的符号)

_GetPwrCapabilities@4


所编译出的符号信息和导出符号信息不匹配所造成的

自己的代码采用cpp的方式编译而到处符号的代码采用c的方式编译(_stdcall)

将所引用的头文件 用extern "C"包装所引用的头文件以解决问题

#ifdef  __cplusplus
extern  "C"  {
#endif
#include <Powrprof.h>
#ifdef  __cplusplus
}
#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐