는 마법사는 거의 모든 CPP 파일에 다음 코드 블록을 생성합니다"#define new DEBUG_NEW"및 "#undef THIS_FILE"등이 실제로 필요합니까? 새 MFC 응용 프로그램을 만들 때
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
을하고 때로는이 추가 :
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
내가 제거 할 것 중복되는 경우 내 CPP 파일의이 코드. VS2008 C++/CLI MFC 응용 프로그램을 사용하고 있습니다.
CPP에서이 코드를 삭제 한 후 Debug에서 실행 해 보았는데 제대로 작동하는 것 같습니다. "새로운"변수가 잘 작동하고, 누수가 없으며, ASSERT 대화 상자에 올바른 파일 이름이 표시되고 문제의 라인으로 건너 뜁니다.
누구나 내가 할 수있는 일과 삭제하는 것이 안전한지 말할 수 있습니까?
정말인가요? VS2008은 코드 블록을 삭제 한 후에도 여전히 메모리 누수 개체 덤프를 표시합니다. 어쩌면이게 VC6 같은데 ...? – demoncodemonkey
죄송합니다. 죄송합니다. 말씀 드린 내용에 미묘한 차이가 있음을 깨달았습니다. 코드가 있으면 출력 창이 메모리 누수가있는 파일 이름과 행을 표시합니다. – demoncodemonkey
그래서 생성 된 코드의 첫 번째 부분을 설명합니다. 두 번째 부분은 어떻습니까? #undef THIS_FILE static char THIS_FILE [] = __FILE__; – demoncodemonkey