-
本帖最后由 奇思精彩 于 2012-11-21 12:28 编辑 *
刚学cocos2d-x,所以第一件事就是玩转数据库啊数据库,无奈官方test没有数据库演示程序。cocos2d是使用FMDatabase框架访问Sqlite数据库(可惜不支持2d-x的C++语言)。目前C++版的Sqlite封装框架有多种:
http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers我选择的是easySQLite:http://code.google.com/p/easysqlite/
easySQLite框架基于键值对的存储方式访问数据库,我很喜欢,但是坑爹的是有少部分代码依赖微软的非标准C++库。经过小幅兼容性修改之后,貌似可以顺利在Android平台编译,但是本人刚学C++,严重担心自己修改的对不对,请各位大大们帮忙看看:(只差这一步就可以在Win32&Android上放心畅快使用SQLite了(
) )
741
(↑左侧为原始文件,右侧红色为我修改之后的文件)
743
744
(↑SqlCommon.cpp)微软C++库中特有的函数localtime_s(&localtime, &_value)
我在标准C++库中找到一个参数相反的函数叫做localtime_r(&_value, &localtime)
不知是否可以这样写?
745
(↑SqlDatabase.cpp)
微软C++库中特有的函数_tzset()
我在标准C++库中找到一个函数叫做tzset()
不知是否可以这样写?
746
(↑SqlFieldSet.cpp)
左侧在VS2008上编译通过,
可是在cygwin上编译失败,必须改写成右侧这样,不知何故。
747
748
749
(↑SqlValue.cpp)
左侧的_atoi64和_i64toa函数好像不是标准C++库函数,我在cygwin上编译失败,改成右侧这样才编译通过。
但是我不知道_atoi64是应该改写成atol还是atoll?写成atoll的话微软VS2008又不识别了。
另外,_i64toa写成sprintf可以吗?其中应该使用"%d"还是"%ld"还是别的什么?
我的C++基础太肤浅,求C++高手帮一把了。
待这几个函数鉴定通过之后,我会发出cocos2d-x结合esaySQLite的跨平台演示DEMO。