wxsqlite3-2.1.0 请到 http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/ 上下载 说明:以下假设QT安装路径在:D:Qt4.7.3 1. 到相应的网站上下载相应的sqlite3.c 和sqlite3.h http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/ 我当前用的是:wxsqlite3-2.1.0 2. 将QT源码中QtSql工程中相应的sqlite3.c删除或备份,(不用最新的源码而是用库,也可以用源码自己编,但是我用的是已经编好的库) 3. sqlite3.h 替换为刚下载的,(wxsqlite3-2.1.0wxsqlite3-2.1.0sqlite3include目录下) 3. 在工程中打开sqlite3.h,并在其最前面添加代码:此宏是启用加密 #ifndef SQLITE_HAS_CODEC #define SQLITE_HAS_CODEC #endif 4. 将wxsqlite3-2.1.0sqlite3secureaes128目录下的sqlite3.lib sqlite3.dll拷贝到 D:Qt4.7.3lib目录下 5. 在QtSql项目的工程属性(debug,release都要设置)链接中加上库文件D:Qt4.7.3libsqlite3.lib (注意不要加sqlite3.dll,否则会报错) 重新编译后,打包时要取最新的QtSqld4.dll 和QtSql4.dll,及其它的dll文件(在工程下面全部更新一下) 6. 对RICO工程的处理: a. 在工程中增加sqlite3.h (将wxsqlite3-2.1.0wxsqlite3-2.1.0sqlite3includesqlite3.h 文件拷到E:Rico_1447_加解密SrcSourceDataStore目录下, 在文件的前面加上 #ifndef SQLITE_HAS_CODEC #define SQLITE_HAS_CODEC #endif ) b. 在RCS工程属性的链接中增加对sqlite3.lib库的引用,此引用其实是找到QTDIR目录下的lib目录下的sqlite3.lib,: c. 如果不是自己编译的QT,则要将加密版本的sqlite3.lib sqlite3.dll拷到D:Qt4.7.3lib目录下, 将QtSqld4.dll 和QtSql4.dll,QtCore4.dll,QtCored4.dll 拷到D:Qt4.7.3bin目录下, QtXmld4.dll,QtNetworkd4.dll不知道要不要拷贝,看名字带d,应该只是调试的 d. 如果是自己的QT工程,则要将加密版本的sqlite3.dll拷贝到相应的工程目录下(如:E:Rico_1447_加解密Src目录下) 7. 加密与解密的测试: 在头文件中包含sqlite3.h后,可以用 qsqldatabase.h文件中增加以下的声明: QVariant QSqlDatabase::sqlite3handle() const; //add by qiuweilong 20120313 qsqldatabase.cpp 文件中增加以下的实现: //add by qiuweilong 20120313 begin QVariant QSqlDatabase::sqlite3handle() const { return d->driver->handle(); } //add by qiuweilong end
//在要用到的文件的头部加上: #include "sqlite3.h" Q_DECLARE_METATYPE(sqlite3*) //以下代码获取数据库连接的指针: sqlite3 *sqlDb = NULL; QVariant vaTemp = m_db.sqlite3handle(); //m_db 为QSqlDatabase类型的私有成员,已经初始化sqlite3连接 sqlDb = vaTemp.value<sqlite3 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|