wxSqlit3 雖然實(shí)現(xiàn)了Sqlite3的加密接口,但默認(rèn)下載的二進(jìn)制文件中確沒有實(shí)現(xiàn)加密,如果需要加密的Sqlite3,需要我們自己動(dòng)手編譯.
在這里我將wxSqlite3編譯成Static lib來使用.注意:wxSqlite3的代碼依賴于 Sqlite3. 這里為了方便,我將Sqlite3也編譯成Static Lib.
編譯步驟如下:
分為兩大步:
一. 編譯加密的Sqlite3
二. 編譯wxSqlite3
最新的 wxSqlite3-1.9.9 相對(duì)于以前的版本在加密實(shí)現(xiàn)源碼部分調(diào)整為純C代碼了,這對(duì)于編譯的步驟來說相當(dāng)簡單了.
一. 編譯加密的Sqlite3
1. 下載wxSqlite3-1.9.9.zip后,解壓到wxsqlite3-1.9.9
(http://sourceforge.net/projects/wxcode/files/Components/)
2. 下載www.Sqlite.org的sqlite-amalgamation-3_XXXX.zip,將壓縮包中的文件全部提取到 wxsqlite3-1.9.9\sqlite3\secure\src\codec-c 下(寫這篇文章時(shí)用的版本是3.6.23.1).
編輯 sqlite3.def , 添加 下面兩個(gè)函數(shù)導(dǎo)出
sqlite3_rekey
sqlite3_key
3. 打開VS,新建一個(gè)"static lib",工程名為"Sqlite3Encrypt",保存到"wxsqlite3-1.9.9\sqlite3"下.
4. 導(dǎo)入文件:只要單純的導(dǎo)入 sqlite3secure.c 這個(gè)文件就好了.
5. 設(shè)置工程屬性: (為方便使用 將Sqlite3的輸出調(diào)整到wxSqlite3工程的輸出目錄中).在這一步中,分為Debug與Release版.( 可以通過新建工程時(shí)建一個(gè)DLL工程,這樣就內(nèi)置了兩個(gè)版本的配置,然后再將"常規(guī)->配置類型"設(shè)置為"靜態(tài)庫(lib)"就可以了.)
常規(guī)->輸出目錄:
"..\..\lib\vc_lib"
C/C++->預(yù)處理->預(yù)處理器定義:
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++->輸出文件->程序數(shù)據(jù)庫文件名:
"..\..\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.
聯(lián)系客服