我单写的程序 用QT DOM方式解析没错误
但是把程序整合到一套大程序中得时候 老是运行出错
Debgug Assertion Failed!
Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse);
这应该是说我重复删除了某些空间
函数如下:
int CFaultModelXML::IniProTree(char *szFileName)
{
if(szFileName == NULL)
{
return -1;
}
QFile xmlFile( QObject::tr(szFileName) );
if ( !xmlFile.open( QIODevice::ReadOnly ) )
{
...
}
QDomDocument domTree;
if ( !domTree.setContent( &xmlFile ) )
{
...
}
xmlFile.close();
//得到顶级节点信息
QDomElement root = domTree.documentElement();
//分析节点信息
parseProTreeXML(root);
return 1;
}
跟踪了一下,在return 1的时候,会调用几次static inline void cleanup(T *pointer);
然后在这里报错。
如果我把domTree.setContent 这个注释掉,没有问题,但是注释掉之后就不能解析XML文件了。
有谁知道怎么解决么,感谢
------解决方案--------------------
查一查释放相关资源和析构函数吧
------解决方案--------------------
看看是不是有重复析构或者野指针
------解决方案--------------------
建议把
QDomDocument domTree;
QDomElement root
作为类的成员变量试试。
------解决方案--------------------