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