wxsqlite3 加解密2

前端之家收集整理的这篇文章主要介绍了wxsqlite3 加解密2前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

wxsqlite3-2.1.0 请到 http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/ 上下载
说明:以下假设QT安装路径在:D:\Qt\4.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.0\wxsqlite3-2.1.0\sqlite3\include\目录下)
3. 在工程中打开sqlite3.h,并在其最前面添加代码:此宏是启用加密

#ifndef sqlITE_HAS_CODEC
#define sqlITE_HAS_CODEC
#endif
4. 将\wxsqlite3-2.1.0\sqlite3\secure\aes128\目录下的sqlite3.lib sqlite3.dll拷贝到 D:\Qt\4.7.3\lib\目录下
5. 在Qtsql项目的工程属性(debug,release都要设置)链接加上文件D:\Qt\4.7.3\lib\sqlite3.lib
(注意不要加sqlite3.dll,否则会报错)
重新编译后,打包时要取最新的Qtsqld4.dll 和Qtsql4.dll,及其它的dll文件(在工程下面全部更新一下)
6. 对RICO工程的处理:
a. 在工程中增加sqlite3.h
(将wxsqlite3-2.1.0\wxsqlite3-2.1.0\sqlite3\include\sqlite3.h 文件拷到E:\Rico_1447_加解密\Src\Source\DataStore\目录下,
文件的前面加上
#ifndef sqlITE_HAS_CODEC
#define sqlITE_HAS_CODEC
#endif
)

b. 在RCS工程属性链接增加sqlite3.lib库的引用,此引用其实是找到QTDIR目录下的\lib\目录下的sqlite3.lib,:

c. 如果不是自己编译的QT,则要将加密版本的sqlite3.lib sqlite3.dll拷到D:\Qt\4.7.3\lib\目录下,
将Qtsqld4.dll 和Qtsql4.dll,QtCore4.dll,QtCored4.dll 拷到D:\Qt\4.7.3\bin\目录下,
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

猜你在找的Sqlite相关文章