我加载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目录下,所以改了目录,最后运行,成功!!!