回复: release和添加了各种dll在其他电脑运行不了
#6 [oscarboycn 04-07 15:12]
Qt的库呢?要是用VC编译,那在redist目录的库也要加上
#7 [dbzhang800 04-07 15:48]
引用第5楼pangsht于2011-04-07 14:41发表的:
TO dbzhang800 ,
我已经将所有的dll和其他类型的文件全放进文件夹里了,可到别的电脑还是双击打开没任何反应……
你提供的东西还是太少。不妨介绍一下你都拷贝了什么东西,放到了那个目录中等等
双击没有反应:会不会是你的程序中错误处理做得不够?比如如果你没有发布或没有正确发布数据库的插件,而且代码中也没有相应的处理代码。
#8 回 6楼(oscarboycn) 的帖子 [pangsht 04-07 16:41]
我的程序直接在QT上编译,不用VC或VS呢……
#9 回 7楼(dbzhang800) 的帖子 [pangsht 04-07 16:57]
不好意思,程序虽说不大,但我在自己电脑里运行是没有错误的,当然不排除您说的可能对一些错误处理的不够。
先说我的程序,程序涉及SQLITE,简单的对数据库读出和写入,一个窗口,控件就一个tableView和一个lineEdit和一个按钮btn,数据库的table也就两属性id和name,先初始化一条记录(1,aaa)给表Test,通过QSqlTableModel显示在tableView中,同时用QDataWidgetMapper映射器将lineEdit的文本映射给表的name属性,点击按钮btn后更新tableView。
我用release生成exe(程序)和dat(数据文件)后,放到U盘的一个英文名文件夹里,再把QtCore4.dll、QtGui4.dll、QtSql4.dll、MingWM10.dll、libgcc_s_dw2-1.dll一起放进去,再用别的电脑整个文件夹复制出来,双击没反应……
再用进程查看工具,把一列表的东西都放进去了,也是没反应……
再在程序里添加了数据文件打开的出错语句:if(!db.open()) { QMessageBox::warning........; return false;}自己电脑里本来也没这个出错的,加了还是能直接运行,且不会弹出这个warning对话框……
#10 Re:回 7楼(dbzhang800) 的帖子 [dbzhang800 04-07 17:08]
引用第9楼pangsht于2011-04-07 16:57发表的 回 7楼(dbzhang800) 的帖子 :
不好意思,程序虽说不大,但我在自己电脑里运行是没有错误的,当然不排除您说的可能对一些错误处理的不够。
先说我的程序,程序涉及SQLITE,简单的对数据库读出和写入,一个窗口,控件就一个tableView和一个lineEdit和一个按钮btn,数据库的table也就两属性id和name,先初始化一条记录(1,aaa)给表Test,通过QSqlTableModel显示在tableView中,同时用QDataWidgetMapper映射器将lineEdit的文本映射给表的name属性,点击按钮btn后更新tableView。
我用release生成exe(程序)和dat(数据文件)后,放到U盘的一个英文名文件夹里,再把QtCore4.dll、QtGui4.dll、QtSql4.dll、MingWM10.dll、libgcc_s_dw2-1.dll一起放进去,再用别的电脑整个文件夹复制出来,双击没反应……
再用进程查看工具,把一列表的东西都放进去了,也是没反应……
再在程序里添加了数据文件打开的出错语句:if(!db.open()) { QMessageBox::warning........; return false;}自己电脑里本来也没这个出错的,加了还是能直接运行,且不会弹出这个warning对话框……
给你个建议,写两个最简单的程序,一个使用sqlite插件,一个不使用,然后分别发布试试,看看能不能成功。因为在你前面的描述中,你始终没提到插件的发布问题,把插件作为普通的dll放置是不能解决问题的。