gpt4 book ai didi

c++ - 来自 TinyXML++ 的奇怪行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:41 26 4
gpt4 key购买 nike

希望你们中的一些 TinyXML++ 人能帮助我。真的,因为你在我认为你欠我之前就向我推荐了 ;)

我有以下代码:

   //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++;
}

如果我使用 child 的顶部声明,我会得到错误:

Unhandled exception at 0x7c812aeb in Drawing.exe: Microsoft C++ exception: __non_rtti_object @ 0x0012f7b4.

我在 dbgheap.c 中的这一行得到它:

pvBlk = _heap_alloc_dbg(nSize, nBlockUse, szFileName, nLine);

奇怪的是它与 Node 一起工作,我知道那里有元素(我使用 TinyXML 迭代方法检查过)。

有人遇到过这个吗?

最佳答案

只是在黑暗中摸索,我不知道 tinyxml,但似乎 dynamic_cast 出错了。如果你 dynamic_cast<> 一个指针,你会在失败时得到一个 NULL 指针。但是,如果转换为引用类型,则没有 NULL 引用的概念,因此运行时会抛出此异常(或 bad_type)。 MSDN on dynamic_cast, and why it can go wrong

您为异常发生而粘贴的行无助于解决问题,因为它标识的是症状而不是原因。

尝试找出出错的转换,如果您沿着堆栈向上走并找到 tinyxml 库或 header 中的最后一个方法,您应该能够找到它。然后您可以决定 tinyxml 是否有问题,或者您只是以错误的方式应用了它。

祝你好运!

关于c++ - 来自 TinyXML++ 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/255302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com