帮助到你了就点个赞吧!
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 刘亚龙-站在巨人的肩膀上