2011-10-30 56 views
1

這是一個跟進到this post,但它有點不同,所以我覺得它有一個新的問題。基本上,Visual Studio已經停止輸出printfs和內存泄漏信息(我正在使用DirectX應用程序)。經過一番挖掘,我發現fmod似乎在阻止VS打印內存泄漏信息。具體來說,如果我評論出:fmod暫停Visual Studio 2008輸出

ERRCHECK(mSystem->init(32, FMOD_INIT_NORMAL, 0)); 

我所有的輸出都返回。有沒有人看過這個?有任何想法嗎?

回答

0

你有這個問題的例子嗎?

我不確定什麼會導致您的問題,但FMOD不包括任何CRT調試掛鉤或代碼,這會干擾我知道的內存泄漏信息。內存調試在FMOD示例中適用於我。

您能否確保您正在連接CRT的調試庫。 即C/C++ - >代碼生成 - >運行時庫=/MDd或/ MTd

+0

這些示例似乎沒有打印任何泄漏信息。是的,我在調試模式下運行。然而,作爲控制檯應用程序,printf()在這些示例中正常工作。如果你把類似「int * trash = new int [100];」在playSound項目中,它是否顯示泄漏? – mike

+0

是的,FMOD沒有任何泄漏日誌記錄,我的意思是,如果添加代碼,它是否按預期工作? –

+0

所以,如果我加上這個: '\t #if defined(DEBUG)| (_DEBUG) \t int nOldState = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); \t _CrtSetDbgFlag(nOldState | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); \t的#define _CRTDBG_MAP_ALLOC \t的#define _INC_MALLOC \t #ENDIF \t INT * UI = snew INT [90]; ' 我期望得到一個報告的內存泄漏,但我沒有。我錯過了什麼? – mike