2

我正在创建一个游戏引擎(visual c++,opengl,...),它已经走了很长一段路。我特别致力于内存安全和内存管理。引擎的每个部分都是在单独的项目中创建的,因此它们不会相互影响,直到我确定它们没问题,然后我将它们集成到引擎中。

最近,我使用 OpenAL 创建了一个声音引擎,如果该项目关闭,我会听到映射到“关键停止”的 windows 声音。屏幕上没有弹出错误,程序似乎正常退出。

我应该从哪里/如何开始搜索以找到导致这种情况的原因?这可能是什么原因造成的?

编辑:我刚刚注意到,在调试时,我最终在 _tWinMain 中出现“返回 0”,调试日志显示:“退出代码 3”。

4

1 回答 1

0

我的通灵调试能力(以及类似的经验)告诉我,您在关机期间(例如,在静态对象的析构函数中)遇到了断言失败(或尝试弹出 CRT 调试对话框的其他机制)。关闭已进展到无法创建对话框的程度。哔声伴随着对话框,退出代码 3 是断言失败可以返回的值之一。

如果您在调试器中运行,我想您会在“输出”窗口中看到原本用于对话框的断言失败。如果没有,您可能必须使用_CrtDebugReport调整 CRT 调试消息的目标。

于 2012-10-08T16:34:23.450 回答