cocos2dx 3.6 引入sqlite3數據庫模塊
cocos版本:v2.3.2Beta
cocos2dx版本:v3.6版
之前使用2.2.6版本的cocos2dx,有使用sqlite的需求,實現方式是直接到sqlite官網下載“sqlite3.h”和“sqlite3.c”兩個文件,並將源文件拷貝到工程的class文件夾中,在工程中直接#include “sqlite3.h”進行引用。
升級到cocos2dx引擎的後,隨着對cocos2dx引擎瞭解的深入,發現cocos2dx引擎中已經集成了sqlite3模塊。具體目錄在C:\Cocos\frameworks\cocos2d-x-3.6\external\sqlite3。直接引入調用sqlite數據庫的代碼。
#include "cocos2d.h"
#include "sqlite3.h"
USING_NS_CC;
class DatabaseOperate
{
public:
bool OpenDataBase(char * name); //打開一個數據庫
bool CreateTable(char * name, char * tableStruct); //創建表
bool IsTableExit(char * name); //判斷表是否存在
void CloseDataBase(); //關閉數據庫
int GetTableDataCounter(char* tableName);//獲取表格中數據的個數
protected:
sqlite3 *m_pdb;
};
提示:#include "sqlite3.h" 語句錯誤無法找到sqlite3.h文件。分析是該h文件沒在工程的include目錄中導致的.於是執行以下操作:
右鍵工程->屬性->配置屬性->C/C++ ->常規->附加包含目錄中增加以下目錄
C:\Cocos\frameworks\cocos2d-x-3.6\external\sqlite3\include
再重新進行編譯則編譯成功。
備註:
1、cocos生成的VS項目工程中,並沒有將C:\Cocos\frameworks\cocos2d-x-3.6\external\第三方模塊都加入到工程的include目錄中,至加入了少數的幾個,開發者引入第三方庫時,需要自己手動加入。
2、由於“C:\Cocos\frameworks\cocos2d-x-3.6\external”,已經加入到了工程的include目錄中,曾嘗試將include代碼寫成#include "sqlite3/include/sqlite3.h",該處理方法可以使工程成功通過編譯,但在鏈接sqlite3.lib時會出現錯誤,錯誤編號爲LNK2019。
推測原因應該是include中的文件路徑擾亂和lib文件中的相關輸出函數的調用。具體原理有待進一步分析