我加载XML文件时出现这个问题,这是单步调试时出现的错误
0x00393436 处最可能的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突,调试出现这个错误!!!
上网找的结果都不是很直接能解决自己的问题
其实原因大多是初始化XML文件时出错,因为在这里出错
// //读取xml表信息
NameParser* myXml = NameParser::parserWithFile("rolename.xml");
在这里myXml是空的!! 发现值是0xcccccccccc!!!!!
这个意思是未初始化时 候的指针是指向地址0x0cccccccc的!!!所以说明没有初始化成功!!!再继续看到解析文件,
bool NameParser::initNameParser(const char *tmxFile)
{
m_xmlMap.clear();
CCSAXParser parser; //定义解析
if(!parser.init("UTF-8")) //不是utf-8就不解析了
{
return false;
}
parser.setDelegator(this); //设置解析的对象,这样就会调用解析的方法
string fullPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(tmxFile);
return parser.parse(fullPath.c_str());
}
其实加载XML文件大多错误出现在加载路径的时候,经过单步调试,自己就是在这里出现错误, 说从XML文件加载数据失败,后来才发现自己XML文件不是放在Resource目录下,所以改了目录,最后运行,成功!!!