首页 > 其他分享 >【FAQ】无法解析的外部符号 _imp_XXXXXXXXX,在XXX中引用了该符号

【FAQ】无法解析的外部符号 _imp_XXXXXXXXX,在XXX中引用了该符号

时间:2022-12-22 15:11:38浏览次数:45  
标签:FAQ lib CMFCApplication1Dlg 符号 void XXX imp OnBnClickedButton1

【问题】调用的函数无法解析

1>MFCApplication1Dlg.obj : error LNK2019: 无法解析的外部符号 _imp_WNetOpenEnumW,函数 "public: void __cdecl CMFCApplication1Dlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMFCApplication1Dlg@@QEAAXXZ) 中引用了该符号
1>MFCApplication1Dlg.obj : error LNK2019: 无法解析的外部符号 _imp_WNetEnumResourceW,函数 "public: void __cdecl CMFCApplication1Dlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMFCApplication1Dlg@@QEAAXXZ) 中引用了该符号
1>MFCApplication1Dlg.obj : error LNK2019: 无法解析的外部符号 _imp_WNetCloseEnum,函数 "public: void __cdecl CMFCApplication1Dlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMFCApplication1Dlg@@QEAAXXZ) 中引用了该符号
1>C:\Demo\MFCApplication1\x64\Debug\MFCApplication1.exe : fatal error LNK1120: 3 个无法解析的外部命令

 

【答案】添加对应的lib库到工程

分析:

出现字符_imp,说明不是真正的静态库,而是某个动态库的导入库,导入函数和自己不同名,所以加了字符_imp。导致该问题的原因如下:

1)说明注册表函数没有相关的lib库,我们需要在MSDN下搜索函数;

2)如果有引入三方库文件,可能存在库编译时和自己的项目编译时的运行库选择不一致(MT/MTd/MD/MDd);

解决:

1、打开MSDN,点击右上角的搜索对应的函数,然后查看函数详情;

2、在函数的详细介绍里面,查看它所在的lib库;

3、将对应的lib添加到代码工程中,即可解决问题;

#pragma comment(lib, "XXX.lib")

 

标签:FAQ,lib,CMFCApplication1Dlg,符号,void,XXX,imp,OnBnClickedButton1
From: https://www.cnblogs.com/wangyaohui08/p/16998768.html

相关文章