我正在创建一个游戏引擎(visual c ++,opengl,...),它已经走了很长的路。我特别致力于内存安全和内存管理。 引擎的每个部分都是在单独的项目中创建的,这样它们就不会影响彼此,直到我确定它们没问题然后我将它们集成到引擎中。
最近,我使用OpenAL创建了一个声音引擎,如果该项目关闭,我会听到已经映射到“关键停止”的窗口声音。屏幕上没有弹出错误,程序似乎正常退出。
我应该在哪里/如何开始寻找导致这种情况的原因?可能导致这种情况的原因是什么?
编辑:我刚注意到在调试时,我最终在_tWinMain中返回“return 0”,调试日志显示:“退出代码3”。
答案 0 :(得分:0)
我的通灵调试功能(以及类似的经验)告诉我在关机期间(例如,在静态对象的析构函数中)存在断言失败(或其他尝试弹出CRT调试对话框的机制)。关闭已经发展得足够远,无法创建对话框。哔哔声伴随着对话框,退出代码3是断言失败可以返回的值之一。
如果您在调试器中运行,我认为您将在“输出”窗口中看到针对该对话框的断言失败。如果没有,您可能需要使用_CrtDebugReport调整CRT调试消息的目标。