gpt4 book ai didi

c++ - Qt QList ASSERT 在其他电脑上安装后失败

转载 作者:搜寻专家 更新时间:2023-10-31 00:36:31 24 4
gpt4 key购买 nike

我在 Visual Studio 2008 中制作了一些程序的安装包。所以在我的电脑上安装后一切正常。在其他 PC 上,当您只需单击数据库连接选项时,它就会崩溃。

嗯,这是错误

enter image description here

我认为它出现在这一行

database = QSqlDatabase::addDatabase("QPSQL");

在数据库初始化部分,因为关于 DB apperas 的消息,在这一行之前一切似乎都工作正常。

这里是完整的函数

void DatabaseManagement::initDatabase(){
QMessageBox::information(this, "error tracking step 5", " DB ADDED");

database = QSqlDatabase::addDatabase("QPSQL");

QStringList sdrivers = QSqlDatabase::drivers();
//output all avalible drivers
QString driver = sdrivers[0];
for(int i = 0; i< sdrivers.size();i++)
QMessageBox::information(this, "Driver info", sdrivers[i]);


}

database 变量在这里对于 DatabaseManagement 类是全局的。同样在这个类中,我得到了 getDatabase 函数,它返回 database 变量,我在其他类中使用它,比如在 mainClass 中(以防万一可能是问题的原因)。

这个问题的原因可能是什么?我该如何解决?对了,我用的是Qt 4.7.4

更新:好了,问题解决了!我忘记添加sqldrivers文件夹了!当然,我添加了所有必需的 .dlls 但由于某种原因,程序只能在此文件夹中看到它。希望它对某人有帮助。顺便说一下,DependencyWalker 表明没有工作版本(没有 sqldrivers 文件夹)没有任何问题。

最佳答案

我的猜测是问题出在这里(调试器会告诉您更多信息):

QStringList sdrivers = QSqlDatabase::drivers();
//output all available drivers
QString driver = sdrivers[0];

您正在访问 sdrivers[0] 而未检查 sdrivers 是否包含至少一个元素。我假设您没有正确部署 Qt SQL 插件,因此在另一台计算机上找不到任何插件。所以修复上面的代码(用 if (!sdrivers.isEmpty())deploy the plugins 保护它) .

关于c++ - Qt QList ASSERT 在其他电脑上安装后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com