2011-10-30 57 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