VC调用QT的dll 问题解决

前提:QT写的界面,转换成VC可调用的dll。

问题1:编译通过,但出现dll装载句柄为NULL,GetLastError()返回126,代码如下:

SetCurrentDirectory("E:\\"); //ABC.dll目录为E:\ABC.

HMODULE handle = LoadLibrary("ABC.dll");  //ABC.dll为QT生成的库
int m=0;
if (handle == NULL){
m=GetLastError();  //m=126
if(m)
return ;
}

经查:如果遇到LoadLibray,返回错误代码为126的时候,要考虑缺少调用库的依赖库,于是将QT的依赖库都拷贝到E:\下后。

问题2:出现窗口:This application failed to start because it could not find or load the Qt platform plugin "windows".

                        reinstalling the application may fix this problem.

                       m=998

将代码改为:


       


HMODULE handle = LoadLibrary("ABC.dll");  //ABC.dll为QT生成的库
int m=0;
if (handle == NULL){
m=GetLastError();  
if(m)
return ;
}

将所有的库都放到VC debug下exe同一目录下,程序运行正常。



总结:调用QTdll后,生成的exe与QT 所有依赖库都得一个目录下才能正确运行。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值