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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值