• 4083阅读
  • 1回复

QT动态链接库问题 [复制链接]

上一主题 下一主题
离线periqq
 
只看楼主 倒序阅读 楼主  发表于: 2009-05-10
问题描述:
    1、我用qt写了一个动态链接库,其中采用QODBC方式访问SQL Sever2005 数据库
    2、该动态链接库在qt写的程序中动态加载,是没有任何错误的
    3、用其他编译平台写的程序,动态加载这个DLL并调用该接口连接数据库,就会出现如下错误:


Debug Error!
QWidget:Must construct a QApplication before a QPaintDevice
(Press Retry to debug the application)

程序连接数据库的代码如下:
bool ConnDatabase()
{
    QFile myfile("LFdatabase.ini");
    QString DBDriver,HostName,DatabaseName,UserID,Password;

    if (myfile.open(QIODevice::ReadOnly))    //数据库配置文件打开成功
    {
        //设置配置文件
        QString DBSetting("LFdatabase.ini");
        QSettings *settings=new QSettings(DBSetting,QSettings::IniFormat);

        //读取数据库连接参数
        settings->beginGroup("DATABASE");

        DBDriver=settings->value("DBDriver",1024).toString();//数据库驱动方式
        HostName=settings->value("DBHostName",1024).toString();//数据库服务器名称
        DatabaseName=settings->value("ODBCDBName",1024).toString();//ODBC数据源中数据库名称
        UserID=settings->value("UserName",1024).toString();//数据库用户名
        Password=settings->value("UserPW",1024).toString();//数据库密码

        settings->endGroup();
        delete settings;

        //设置数据库连接参数
        QSqlDatabase *db=new QSqlDatabase;
        db->addDatabase(DBDriver);
        db->setHostName(HostName);
        db->setDatabaseName(DatabaseName);
        db->setUserName(UserID);
        db->setPassword(Password);

        if(!db->open())    //数据库打开失败
        {
            QMessageBox::critical(0,QObject::tr("Database Error"),db->lastError().text());
            return false;
        }
        else
            return true;
     }
     else//未能找到配置文件
     {
         QMessageBox::critical(0,QObject::tr("错误"),QObject::tr("数据库配置文件“LFdatabase.ini”未找到,请确认文件存在并且路径正确!"));
         return false;
     }
}
离线fcymk2

只看该作者 1楼 发表于: 2009-05-11
其他编译平台? 不是QT?

错误提示已经说 的很清楚了,构建一个 QApplication 先
快速回复
限100 字节
 
上一个 下一个