标题:使用QT加载VS2010的DLL失败。
作者:terranrmb
日期:2016-04-19 15:59
内容:
我的环境:QT5.6-VS2015-Window7-64
因为工作需要,要在项目工程加载一个DLL,该DLL曾经在VS2010的环境下加载成功。
目前我分别使用LOADLIBRARY和QLIBRARY来加载该DLL 都在LOAD的时候失败了。
我个人分析应该是编译器不同导致的,但是很怀疑VS2015和2010之间会有编译器问题吗?
现在我使用qmake和jom来编译工程,jom是调用VS2015的编译器来完成编译吗?
请高手指教。
#1 [terranrmb 04-19 17:35]
哦,更新一些信息,我用vs2015创建了一个工程,也可以成功加载那个DLL。但是QT使用VS2015的编译器的工程却加载失败。求教这两者有何不同?如何让QT加载成功?
#2 [姜小白 04-19 20:42]
情况很多,比如字符串是否是不同编码,Unicode 和 Utf-8 区别;
或者用QLIBRARY是,你的函数定义时是否正确;
接口导出时 stdcall 和 cdecl 的区别等等。。。
#3 回 姜小白 的帖子 [terranrmb 04-20 08:52]
姜小白:情况很多,比如字符串是否是不同编码,Unicode 和 Utf-8 区别;
或者用QLIBRARY是,你的函数定义时是否正确;
接口导出时 stdcall 和 cdecl 的区别等等。。。 (2016-04-19 20:42)
哦,感谢回复。现在是显式加载DLL就失败,还没到方法调用的步骤。字符串因为接口需要,统一采用了宽字符。而且用VS2015加载时,使用的是同样的代码,所以应该不是这几个问题。
#4 [terranrmb 04-20 13:39]
问题已经解决了……是因为该DLL是32位的。
#5 [chongyong 06-04 16:09]
大佬还在吗,我最近在做一个vs中编译dll,qt中调用。遇到一个问题。
QLibrary myDll("dlltest.dll");
if(!myDll.load())
{
qDebug()