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。