java wxsqlite_编译 wxSqlite3 总结

关键字: VC  编译 加密 Sqlite  wxSqlite3 编译 wxSqlite3 使用

wxSqlite3作为wxWidgets的扩展组件用C++语法对Sqlite3的API进行了封装,为Sqlite3的使用提供了方便.

wxSqlit3 虽然实现了Sqlite3的加密接口,但默认下载的二进制文件中确没有实现加密,如果需要加密的Sqlite3,需要我们自己动手编译.

在这里我将wxSqlite3编译成Static lib来使用.注意:wxSqlite3的代码依赖于 Sqlite3. 这里为了方便,我将Sqlite3也编译成Static Lib.

编译步骤如下:

分为两大步:

一. 编译加密的Sqlite3

二. 编译wxSqlite3

最新的 wxSqlite3-1.9.9 相对于以前的版本在加密实现源码部分调整为纯C代码了,这对于编译的步骤来说相当简单了.

一. 编译加密的Sqlite3

1. 下载wxSqlite3-1.9.9.zip后,解压到wxsqlite3-1.9.9

2. 下载www.Sqlite.org的sqlite-amalgamation-3_XXXX.zip,将压缩包中的文件全部提取到 wxsqlite3-1.9.9\sqlite3\secure\src\codec-c 下(写这篇文章时用的版本是3.6.23.1).

编辑 sqlite3.def , 添加 下面两个函数导出

sqlite3_rekey

sqlite3_key

3. 打开VS,新建一个"static lib",工程名为"Sqlite3Encrypt",保存到"wxsqlite3-1.9.9\sqlite3"下.

4. 导入文件:只要单纯的导入 sqlite3secure.c 这个文件就好了.

5. 设置工程属性: (为方便使用 将Sqlite3的输出调整到wxSqlite3工程的输出目录中).在这一步中,分为Debug与Release版.(可以通过新建工程时建一个DLL工程,这样就内置了两个版本的配置,然后再将"常规->配置类型"设置为"静态库(lib)"就可以了.)

常规->输出目录:

"..\..\lib\vc_lib"

C/C++->预处理->预处理器定义:

SQLITE3ENCRYPT_EXPORTS

SQLITE_ENABLE_FTS3

SQLITE_ENABLE_FTS3_PARENTHESIS

SQLITE_ENABLE_RTREE

SQLITE_SECURE_DELETE

SQLITE_SOUNDEX

SQLITE_ENABLE_COLUMN_METADATA

SQLITE_HAS_CODEC

CODEC_TYPE=CODEC_TYPE_AES128

C/C++->输出文件->程序数据库文件名:

"..\..\lib\vc_lib\Sqlite3EncryptD.pdb" //Debug版

"..\..\lib\vc_lib\Sqlite3Encrypt.pdb" //Release版

管理员->输出文件:

$(OutDir)\$(ProjectName)D.lib //Debug版

$(OutDir)\$(ProjectName).lib    //Release版

6. 编译生成 Sqlite3EncryptD.lib,Sqlite3Encrypt.lib

二. 编译wxSqlite3.

wxSqlite3的编译需要wxWidgets库.去http://www.wxwidgets.org/下载安装包默认安装后,进入"wxWidgets-2.9.0\build\msw"下找到VS的工程文件打开后,编译debug与Release版(这两个版本默认是Static lib).

1. 到"wxsqlite3-1.9.9\build"下找到VS的工程文件打开.这里我只编译 "Static Unicode Debug Monolithic Static"与 "Static Unicode Release Monolithic Static" 版.

2. 设置工程属性:

C/C++->常规->附加包含目录:

"C:\wxWidgets-2.9.0\lib\vc_lib\mswud";"C:\wxWidgets-2.9.0\include";..\include;..\sqlite3\include //Debug版

"C:\wxWidgets-2.9.0\lib\vc_lib\mswu";"C:\wxWidgets-2.9.0\lib\include";..\include;..\sqlite3\include //Release版

C/C++->预处理->预处理器定义:

WXSQLITE3_HAVE_METADATA=1 //修改0为1

WXSQLITE3_HAVE_CODEC=1 //修改0为1

SQLITE_HAS_CODEC //添加

3. 编译生成. wxcode_msw28ud_wxsqlite3.lib,wxcode_msw28u_wxsqlite3.lib

使用:

要使用 wxSqlite3,也是需要 wxWidgets库的.

例:

1. 新建一个控制台项目

2. 设置工程属性:

C/C++->常规->附加包含目录:

"C:\wxWidgets-2.9.0\include"                                                   \

"C:\wxWidgets-2.9.0\lib\vc_lib\mswud" // Debug版         --- wxWidgets 库

"C:\wxWidgets-2.9.0\lib\vc_lib\mswu"   // Release版   /

"??\wxsqlite3-1.9.9\include"                          // wxSqlite3 include 目录。

链接器->常规->附加库目录:

"C:\wxWidgets-2.9.0\lib\vc_lib";"??\wxsqlite3-1.9.9\lib\vc_lib"; // Debug版

"C:\wxWidgets-2.9.0\lib\vc_lib";"??\wxsqlite3-1.9.9\lib\vc_lib" // Release版

链接器->输入->附加依赖项:

wxcode_msw28ud_wxsqlite3.lib wxbase29ud.lib Sqlite3EncryptD.lib // Debug版

Sqlite3Encrypt.lib wxcode_msw28u_wxsqlite3.lib wxbase29u.lib // Release版

3. 在代码中引用 #include "wx/wxsqlite3.h"

完成~!

作者mail:fishseewater@gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值