详细而言我们有两种方式能够在Visual Studio中SQLite数据库:使用SQLite源码文件和使用Cocos2d-x提供的库文件。
1、使用SQLite源码文件
SQLite是C编写的开源的数据库,我们能够在http://www.sqlite.org/download.html网址下载最新的SQLite源码,如我下载的sqlite-amalgamation-3080401.zip文件,解压这个文件后的内容包括:shell.c、sqlite3.c、sqlite3.h和sqlite3ext.h。
我们一般仅仅须要sqlite3.c和sqlite3.h两个文件就能够了。
我们须要把这两个文件加入到project中,详细过程是拷贝它们到project中Classes文件夹,打开解决方式。如图所看到的,右键点击HelloWorldproject下Classes文件夹。在右键菜单中选择。“加入”→ “现有项”。然后。在弹出对话框中选择sqlite3.c和sqlite3.h文件加入到project中。
2、使用Cocos2d-x提供的库文件
因为Cocos2d-x引擎事实上已经带有为Win32下訪问SQLite所须要的库,Cocos2d-x 3.x中SQLite库文件所在位置是<project文件夹>cocos2dexternalsqlite3librarieswin32文件夹中,头文件在<project文件夹>cocos2dexternalsqlite3include文件夹中。我们能够直接使用。
这样的方式的长处是。能够直接使用Cocos2d-x引擎为开发人员编译好的库文件,版本号兼容性好。缺点是。配置开发环境比較麻烦。并且移植到其它平台时Win32库文件是不能使用的,我们须要又一次配置环境。以下我们就详细介绍一下这样的方式。
首先,我们须要配置头文件搜索路径,选中HelloWorldproject,打开菜单“项目”→ “属性”弹出project属性对话框,例如以下图所看到的。选择“配置属性”→“C++” →“常规”,在右边的“附加包括文件夹”中加入$(EngineRoot)externalsqlite3include,注意配置目之间须要用分号分隔开。
接下来我们还须要将SQLite3的库文件复制到运行环境中,最简单的方式是手工将<project文件夹>cocos2dexternalsqlite3librarieswin32文件夹中的sqlite3.dll和sqlite3.lib文件复制到可运行文件所在文件夹下。如:<project文件夹>proj.win32Debug.win32文件夹。
然后,编译project就能够了,可是假设我们清除了Debug.win32文件夹,这两个文件就会丢失。为了防止这样的情况。我们能够在project编译的时候。设置编译事件。我们能够在这个事件中定义拷贝过程。打开project属性对话框,例如以下图所看到的,选择“配置属性”→“生成事件” →“预链接事件”,改动右边窗体的“命令行”,内容例如以下:
if not exist "$(OutDir)" mkdir "$(OutDir)"
xcopy /Y /Q "$(EngineRoot)externalwebsocketsprebuiltwin32*.*" "$(OutDir)"
xcopy /Y /Q "$(EngineRoot)externalsqlite3librarieswin32*.*" "$(OutDir)"
当中后面一行是我们追加的,原来project模板仅仅设置了拷贝websockets。这个会在我们project编译的时候将$(EngineRoot)externalsqlite3librarieswin32文件夹下的全部文件复制到输出文件夹。当中$(EngineRoot)宏代表<project文件夹>cocos2d文件夹,$(OutDir)宏是可运行文件的生成文件夹,这里代表<project文件夹>proj.win32Debug.win32文件夹。
我们试着编译一下project,或者又一次生成解决方式。看看在可运行文件的生成文件夹下是否包括库文件sqlite3.dll和sqlite3.lib文件。
《Cocos2d-x实战 C++卷》现已上线。各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1