首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TinyXML++的奇数行为

TinyXML++的奇数行为
EN

Stack Overflow用户
提问于 2008-11-01 00:16:15
回答 3查看 827关注 0票数 2

希望你们中的一些人能帮助我。说真的,既然你在我认为你欠我之前就重新归向我了;)

我有以下代码:

代码语言:javascript
复制
   //ticpp::Iterator< ticpp::Element > child( "SetPiece" );
    ticpp::Iterator< ticpp::Node > child("SetPiece");
    GLuint lc_SPieces = 0;
    for(child = child.begin( this ); child != child.end(); child++ )
    {
        lc_SPieces++;
    }

如果我在子表中使用最上面的声明,就会得到以下错误:

Drawing.exe中0x7c812aeb处的未处理异常: Microsoft C++异常:__non_rtti_object @ 0x0012f7b4。

我在dbgheap.c中找到了这一行:

代码语言:javascript
复制
pvBlk = _heap_alloc_dbg(nSize, nBlockUse, szFileName, nLine);

奇怪的是,它适用于Node,而且我知道其中有一些元素(我使用TinyXML迭代方法进行了检查)。

以前有人遇到过这种情况吗?

EN

回答 3

Stack Overflow用户

发布于 2008-11-02 15:57:02

只是在黑暗中窥探,我不知道tinyxml,但似乎dynamic_cast出错了。如果你dynamic_cast<>一个指针,你会得到一个空指针失败.但是,如果转换为引用类型,则不存在空引用的概念,因此运行时抛出此异常(或bad_type)。演员,为什么它会出错

您为异常发生而粘贴的行无助于澄清情况,因为它识别的是症状而不是原因。

尝试识别出错误的强制转换,如果您沿着堆栈并在tinyxml库或头文件中找到最后一个方法,您应该能够找到它。然后,您可以判断tinyxml是否有问题,或者您只是使用了错误的方法。

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2008-11-12 23:38:55

如果传递的指针或引用没有指向多态对象,而是指向一些垃圾,则__non_rtti_object由dynamic_cast运算符生成。也许这个对象早些时候被删除了。

在调试器中逐步遍历代码,并检查dynamic_cast在何处使用以及传递给它的内容。

帕沃

票数 1
EN

Stack Overflow用户

发布于 2008-11-02 16:12:22

项目->属性-> C/C++ ->语言->启用运行时类型信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/255302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档