链接时出现"无法解析的外部符号, 错误信息(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