我的代码是这样的:
void some_func(void *source)
{
...
double *casted = reinterpret_cast<double *>(source);
...
}
这会导致std::__non_rtti_object
异常。根据堆栈跟踪,它从__RTDynamicCast
引出,这是(据我所知)动态广播的MSVC实现。
这个异常应该发生在dynamic_cast中,因为指针来自外部库(可能是在没有/ GR的情况下编译),并且指向带有几个双精度的struct。但我不希望这与reinterpret_cast。它不应该只改变指针的类型,而不进行任何检查吗?
注意:
答案 0 :(得分:0)
非可重复的。
啊,我试图用所有额外的库重建整个项目 问题消失了。看起来很奇怪,因为我从未有过代码 使用dynamic_cast,所以不知道是什么造成的。我也已经 之前尝试重建该项目(没有其他dll)。 无论如何,感谢所有的帮助。 - OP
答案 1 :(得分:0)
您似乎需要在makefile中重新检查dll的构建顺序(如果使用的话)。我想你提到的外部库的来源是来自外部库的更高的&#34;更高的&#34;在构建树中,而不是代码所在的库。尝试看看你的makefile是否正常工作(可能会错过一些触发器)。