已解决error LNK2019: 无法解析的外部符号 __imp_IsTextUnicode以及__imp_MessageBoxA等

来源:互联网 发布:江本胜水结晶实验 知乎 编辑:程序博客网 时间:2024/06/05 03:20

帮助到你了就点个赞吧!

Powered By 刘亚龙-站在巨人的肩膀上

 

 

最近本人在搞opencvvs2013+win10+opencv3.1。搞了半天,出了很多奇葩的问题,

 

最坑不过如下错误:

 


文字描述:

错误      3     errorLNK2019:无法解析的外部符号__imp_IsTextUnicode,该符号在函数"char __cdecl myIsTextWideChar(void const *,int)"(?myIsTextWideChar@@YADPEBXH@Z)中被引用       E:\Desktop\working\EasyPR-master\vcprojs\xmlParser.obj

错误      4     errorLNK2019:无法解析的外部符号__imp_MessageBoxA,该符号在函数"public: static struct XMLNode __cdecl XMLNode::openFileHelper(char const*,char const *)" (?openFileHelper@XMLNode@@SA?AU1@PEBD0@Z) 中被引用      E:\Desktop\working\EasyPR-master\vcprojs\xmlParser.obj

Error LNK1120:你有2个错误,233333

 

 

关于这些问题,网上有很多解决办法,大家可以直接搜__imp_IsTextUnicode或__imp_MessageBoxA来解决,现就我遇到的情况,为解决办法做个总结。

一般出现这种问题可以考虑为库文件的丢失,可以在main.cpp中加入如下格式的代码来添加库文件:

 

#pragma comment(lib,"Ws2_32.lib" )//表示链接Ws2_32.lib这个库,是winsock2的库文件。

#pragma comment(lib, "User32.lib")//函数MessageBoxA所对应的库

#pragma comment(lib,"Advapi32.lib")//函数IsTextUnicode所对应的库

#pragma comment(lib,"oleaut32.lib")//函数SysFreeStringSysAllocStringByteLen所对应的库

#pragma comment(lib,"wsock32")// CSocketWSock32.dll中实现

#pragma comment(lib,"ws2_32"// Socket APIws2_32.dll实现

 

以上这些代码的实现效果和在工程设置里设置库文件添加Ws2_32.lib的效果一样。好处是方便代码给其他人使用,不用重复配置设置属性了。

 

如果不确定自己是哪里出了问题,可以将以下库文件都按照上面的格式添加进main.cpp的include的后方,最后自己排除。

ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.libadvapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.libodbccp32.lib

 

像这样:

 

告诉连接器连接的时候要找这些库。

 

反正我是成功了,也祝大家早日成功。

 

 

 

帮助到你了就点个赞吧!

Powered By 刘亚龙-站在巨人的肩膀上

 

阅读全文
2 0
原创粉丝点击