加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

wxsqlite3 加解密2

发布时间:2020-12-12 20:34:43 所属栏目:百科 来源:网络整理
导读: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-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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读