Когда я программировал с использованием havok, при завершении работы программы возникал сбой,
Я включил функции havok в класс C ++, чтобы упростить основную функцию, и я вызываю функции выхода из havok вдеструктор моего класса, но это может привести к аварийному завершению «необработанного исключения».
Если я возьму из функции деструктора функцию havok и добавлю ее в основную функцию, все будет хорошо.Мне просто интересно, почему он не работает в деструкторе, а работает в основной функции?
мой код:
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 quit hkBaseSystem :: quit ();и hkMemoryInitUtil :: quit ();если я вызову ее в функции main, как в коде выше, программа будет работать отлично, но если я добавлю эту функцию 2 quit в деструктор класса HKUTI, она потерпит крах, когда программа попытается выйти.Я не вижу никакого отличия от этого подхода, может кто-нибудь сказать, что произошло в деструкторе C ++?
Большое спасибо