问题1:fopen 在vs下使用fopen进行文件处理,跑通了,但是移植到android下时就出现了一大推问题,首先需要理解的是在vs下开发资源是存放在执行文件的相同目录下的,而移植到android下时资源是存放在assets目录下的,之前尝试过使用以下的方法: [cpp] view p
问题1:fopen
在vs下使用fopen进行文件处理,跑通了,但是移植到android下时就出现了一大推问题,首先需要理解的是在vs下开发资源是存放在执行文件的相同目录下的,而移植到android下时资源是存放在assets目录下的,之前尝试过使用以下的方法:
-
char* fileName = "bg.png";
-
string filepath = CCFileUtils::sharedFileUtils()->fullPathForFilename(fileName);
-
FILE *fp = fopen(filepath.c_str(), "r");
结果还是报错,一进游戏就挂了,估计是跟底层有关,没有深究,解决方法是使用cocos2dx的CCFileUtils
-
char* filename = "bg.png";
-
-
string filepath = CCFileUtils::sharedFileUtils()->fullPathForFilename(filename);
-
-
unsigned long len = 0;
-
-
unsigned char *data =CCFileUtils::sharedFileUtils()->getFileData(filepath.c_str(), "rb", &len);
-
-
-
-
-
-
-
if(len >0 && data) delete[] data;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
问题2:tinyxml
使用tinyxml来读xml文件,之前我的做法是:
-
-
string xmlFile_path = "bg.xml";
-
-
tinyxml2::XMLDocument* doc=new tinyxml2::XMLDocument();
-
doc->LoadFile(xmlFile_path.c_str());
-
tinyxml2::XMLElement *ani_node=doc->RootElement();
-
tinyxml2::XMLElement *action_node=ani_node->FirstChildElement("action");
在vs下是跑通了,但移植到android下就崩溃了,后来在网上看到一些解决方法:连接http://blog.sina.com.cn/s/blog_6e5f7d400100zlj7.html
先把xml文件读取到一个buff,然后让tinyxml来解析这个buff,让tinyxml绕过了读取文件失败的bug
-
-
string xmlFile_path = "bg.xml";
-
-
string xmlfilepath = CCFileUtils::sharedFileUtils()->fullPathForFilename(xmlFile_path.c_str());
-
-
unsigned long len = 0;
-
-
unsigned char *data =CCFileUtils::sharedFileUtils()->getFileData(xmlfilepath.c_str(), "r", &len);
-
-
tinyxml2::XMLDocument* doc=new tinyxml2::XMLDocument();
-
doc->Parse((char*)data, len);
-
tinyxml2::XMLElement *ani_node=doc->RootElement();
-
tinyxml2::XMLElement *action_node=ani_node->FirstChildElement("action");