• 5263阅读
  • 2回复

[提问]QPluginLoader 开发机 正常。客户机无法读取 [复制链接]

上一主题 下一主题
离线downstairs
 

只看楼主 倒序阅读 楼主  发表于: 2011-06-20
  1. QString ppp="D:\\Release\\sqldrivers\\qsqlodbc4.dll";//QApplication::applicationDirPath()+"/sqldrivers/qsqlodbc4.dll";
  2. QPluginLoader loader(ppp);
  3. bool b=loader.load();
  4. QMessageBox::about(NULL,"112",QString("%1 !%2").arg(b?"是":"否").arg(ppp));
开发机正常读取。。目标机器就不行。。郁闷死。。。
大哥。。解决不了了。求助
喜爱编程的猫头鹰
离线diyuanbo

只看该作者 1楼 发表于: 2011-06-20
回 楼主(downstairs) 的帖子
目标机上有"D:\\Release\\sqldrivers\\qsqlodbc4.dll"?
QPluginLoader loader(ppp);应该已经load了,不必再loader.load();了吧?
离线downstairs

只看该作者 2楼 发表于: 2011-06-20
http://hi.baidu.com/cyclone/blog/item/d77a86182fb915b84bedbc57.html

需在用户机器上安装1M多的VS2008可再发行包 vcredist_x86.exe 即可

或者将文件夹
<Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC90.CRT
当采用这种方法时,如果同时发布插件(包括图片插件等),那么插件编译时必须:
CONFIG-=embed_manifest_dll
使得生成的插件中不嵌入manifest文件,否则插件不被程序识别(其实也可以识别,只要将 Microsoft.VC90.CRT 拷贝一份和插件放到同一文件夹即可,当然这种方式很不好,如果插件分布在几个目录下,要放置Microsoft.VC90.CRT的很多副本)。
喜爱编程的猫头鹰
快速回复
限100 字节
 
上一个 下一个