【问题标题】:fmod halts Visual Studio 2008 outputfmod 停止 Visual Studio 2008 输出
【发布时间】:2011-11-02 07:26:43
【问题描述】:

这是对this post 的跟进,但有点不同,所以我觉得有必要提出一个新问题。基本上,Visual Studio 已经停止输出 printfs 和内存泄漏信息(我正在开发 DirectX 应用程序)。经过一番挖掘,我发现 fmod 似乎阻止了 VS 打印内存泄漏信息。具体来说,如果我注释掉:

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

我所有的输出都返回。有人见过这个吗?有什么想法吗?

【问题讨论】:

    标签: visual-studio debugging fmod


    【解决方案1】:

    你对例子有这个问题吗?

    我不确定是什么导致了您的问题,但 FMOD 不包含任何 CRT 调试挂钩或代码,它们会干扰我知道的内存泄漏信息。在 FMOD 示例中,内存调试对我有用。

    你能确定你正在链接 CRT 的调试库吗? 即 C/C++ -> 代码生成 -> 运行时库 = /MDd 或 /MTd

    【讨论】:

    • 这些示例似乎没有打印任何泄漏信息。是的,我正在调试模式下运行。但是,作为控制台应用程序, printf() 在示例中可以正常工作。如果您输入“int*垃圾=新int[100];”之类的内容在 playSound 项目中,是否显示泄漏?
    • 是的,FMOD 没有任何泄漏日志记录,我的意思是如果您添加该代码,它会按预期工作吗?
    • 所以,如果我添加这个:` #if defined(DEBUG) |定义(_DEBUG)int nOldState = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); _CrtSetDbgFlag(nOldState | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #define _CRTDBG_MAP_ALLOC #define _INC_MALLOC #endif int* ui=snew int[90]; ` 我希望得到报告的内存泄漏,但我没有。我错过了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多