2012-10-08 38 views
2

我創建一個遊戲引擎(VISUAL C++,OpenGL的,...),它已走過了很長的路要走Windows的「臨界停止」的聲音。我特別緻力於內存安全和內存管理。 引擎的每個部分都是在不同的項目中創建的,以便它們不會影響對方,除非我確定它們沒問題,然後將它們集成到引擎中。當我的項目結束

最近,我創建使用OpenAL的聲音引擎,如果該項目關閉,我聽說已被映射到「臨界停止」 Windows聲音。沒有錯誤在屏幕上彈出,程序似乎正常退出。

在哪裏/我應該如何開始搜索以找到是什麼引起的?什麼可能導致這種情況?

編輯:剛纔我注意到,在調試時,我結束了在_tWinMain「返回0」,調試日誌顯示:「已退出,代碼3」。

+1

你的Windows應用程序事件日誌顯示什麼?崩潰的應用程序總是顯示在那裏。 – Benj

+0

您是否嘗試在調試器中運行該程序?每個關鍵事件都應該觸發調試器中斷程序,在發生問題時爲您提供過程的回溯和狀態快照。 – datenwolf

+0

什麼*究竟*「項目關閉」是什麼意思?如果從項目目標中領先,你會期望音頻引擎發出噪音。確實,從事這項工作的程序員確實有點創意。 –

回答

0

我的心理調試能力(以及類似的經驗)告訴我,在關閉過程中(例如,在靜態對象的析構函數中)你有斷言失敗(或者試圖彈出CRT調試對話框的其他機制) 。關機已經發展到足以使對話不能被創建。嘟嘟聲伴隨着對話,並且退出代碼3是斷言失敗可以返回的值之一。

如果在調試器中運行,我想你會看到這是用於在輸出窗口的對話框斷言失敗。否則,您可能需要使用_CrtDebugReport來調整CRT調試消息的目標位置。