2011-10-30 11 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定義(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 \t #endifのINT * UI = SNEW INT [90]。 ' 私は報告されたメモリリークを期待しますが、私はそうではありません。私は何かが欠けていますか? – mike

関連する問題