【FAQ】无法解析的外部符号 _imp_XXXXXXXXX,在XXX中引用了该符号
【问题】调用的函数无法解析
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")
分类:
C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具