您的位置:首页 > 其它

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

2017-09-08 17:14 483 查看
帮助到你了就点个赞吧!
Powered By 刘亚龙-站在巨人的肩膀上
 

 

最近本人在搞opencv,vs2013+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")//函数SysFreeString和SysAllocStringByteLen所对应的库

#pragma comment(lib,"wsock32")// CSocket在WSock32.dll中实现

#pragma comment(lib,"ws2_32")// Socket API在ws2_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 刘亚龙-站在巨人的肩膀上
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐