XP下Qt调用VS10编译的dll库失败,该怎么解决
XP下Qt调用VS10编译的dll库失败
我用上面的代码,同样是用Qt,在win7下面能调用那个dll库,在XP下却一直load失败。那个dll库在win7和XP都重新编译过了,都不行。一开始以为是32位和64位的库不能互相调用的问题,但在XP下重新编译了还是不行。希望大家帮忙解决一下,感激不尽!!
------解决思路----------------------
至于64位、32位的不同:
在64位Windows下:
64位exe和dll在目录c:\windows\system32目录下;
32位exe和dll在目录c:\windows\syswow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
#include <qlibrary.h>
QLibrary metdll("***.dll");
if(metdll.load())
{
qDebug()<<"Load dll OK";
typedef Out (*FUN)(MetIn input);
FUN p=(FUN)metdll.resolve("FUN");
if(p)
{
qDebug()<<"it exists";
}
}
我用上面的代码,同样是用Qt,在win7下面能调用那个dll库,在XP下却一直load失败。那个dll库在win7和XP都重新编译过了,都不行。一开始以为是32位和64位的库不能互相调用的问题,但在XP下重新编译了还是不行。希望大家帮忙解决一下,感激不尽!!
------解决思路----------------------
至于64位、32位的不同:
在64位Windows下:
64位exe和dll在目录c:\windows\system32目录下;
32位exe和dll在目录c:\windows\syswow64目录下;
所以要注意:
在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。
且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll