我在exe(sqldrivers文件夹)附近的同一目录中写了一个小应用程序和所有与Qt相关的dll。
问题:应用程序在我手动启动时工作,但是当它由Windows的任务调度程序启动时提供" QSqlDatabase:驱动程序未加载,QSqlDatabase:可用驱动程序:QSQLITE QMYSQL ... blah blah"错误。
有什么想法吗?
答案 0 :(得分:0)
确保Qt SQL驱动程序插件所依赖的库(例如libmysql.dll
)也在PATH中。
否则Qt无法dlopen
任何Qt插件不满足b / c依赖性。
PS:使用Dependency Walker(http://www.dependencywalker.com/)检查sqldrivers/
中插件的其他依赖关系
答案 1 :(得分:0)
在路径环境变量中添加路径后,意识到如果我在命令提示符下的任何其他目录中调用myapp.exe,它就不会加载驱动程序,但如果我将命令提示符目录更改为exe'它的工作路径。
所以我找到了一个替代解决方案,即创建以下bat文件,我用调度程序调用它并且它可以工作。
@echo off
d:
cd MyAppPath
start "" "D:\MyAppPath\MyApp.exe"
exit
BTW不要忘记添加路径["路径"]环境,如" ....; D:\ MyAppPath"
感谢您的回复。