读书人

error LNK2019: unresolved external

发布时间: 2012-05-09 12:13:59 作者: rapoo

error LNK2019: unresolved external symbol "__declspec(dllimport)
error LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl skinppLoadSkin(wchar_t *,int)" (__imp_?skinppLoadSkin@@YAHPA_WH@Z) referenced in function "public: virtual int __thiscall CRFMSApp::InitInstance(void)" (?InitInstance@CRFMSApp@@UAEHXZ)

怎么办?

[解决办法]
没加载lib文件。。。
[解决办法]
你dll导出函数没有被设为导出在dll要导出的函数前加上__declspec(dllexport)
[解决办法]
出现这种错误,建议看看下面几个选项:
(VS2005)
1、Project1 Properties -->Conifiguration Properties -->General --> Character Set;
2、Project1 Properties -->Conifiguration Properties -->C/C++
-->Preconpiled Headers-->Create/User preconpiled Header
[解决办法]
用VC6生成的LIB在VC6下用是正常的,却不能在Vs2005中使用。
你应该用VS2005再生成一个LIB。
如果是DLL的导出涵数是C的话,你可以用动态加载DLL的方式
[解决办法]
如果是这种情况,最好是在VS2008环境中重编skin++代码,因为VS2008中对C++函数的包装跟VC6不一样。

探讨
引用:
你dll导出函数没有被设为导出在dll要导出的函数前加上__declspec(dllexport)


是skin++的dll。

在vc6下面是好的,可在VS2005里面这样了。

[解决办法]
这文章纯属菜鸟之作。。。

wchar_t和char,不同类型的函数参数,自然导致最后生成的函数名称不一致。

探讨
http://www.cnblogs.com/phinecos/archive/2008/04/14/1152696.html

==

这里说,是因为用了UNICODE编码,可如果改成了多字节编码,那我其他地方又不行了。

[解决办法]
所以把工程改成MBCS是治标不治本的做法。

如果想在UNICODE工程中用,再不考虑其他因素,楼主可以自己对skin++封装一层。

探讨
注:关于SKIN++在VS2005中的使用。需要注意的几点是,SKIN++免费版是只支持ANSI的,但VS2005默认情况下编码为UNICODE,如果在编译链接时不把编码改为ANSI则无法正常生成。

[解决办法]
lz可以清除工程,然后全部重新编译一下,我以前遇到过,重编译就通过了,不妨可以试试
[解决办法]
楼上的方法貌似不行

读书人网 >VC/MFC

热点推荐