当我使用 havok 编程时,程序退出时我遇到了崩溃,
我将 havok 函数封装到 C++ 类中以简化主函数,并在类的析构函数中调用 havok 退出函数,但这可能会导致“未处理的异常”崩溃。
如果我从析构函数中取出havok的相当函数,放到main函数中就可以了。我只是想知道为什么它在析构函数中不起作用但在主函数中起作用?
我的代码是:
int HK_CALL main(int argc, const char** argv)
{
HKUTI *myhk = new HKUTI(setupPhysics, 1000);
myhk->run(displayGraphics, 60, 30);
delete(myhk);
myhk = NULL;
hkBaseSystem::quit();
hkMemoryInitUtil::quit();
return 0;
}
2 havok退出函数是hkBaseSystem::quit(); 和 hkMemoryInitUtil::quit(); 如果我像上面的代码那样在主函数中调用它,程序将完美运行,但是如果我将那个 2 退出函数放在 HKUTI 类的析构函数中,当程序试图退出时它会崩溃。我看不出这两种方法有什么不同,谁能告诉我 C++ 析构函数中发生了什么?
非常感谢