Как отключить визуальную проверку утечки памяти C ++ для конкретного файла? - PullRequest
4 голосов
/ 12 октября 2009

Один из моих проектов использует проверку утечки памяти, предоставленную Microsoft, через _CrtSetDbgFlag и т. Д. Это работает нормально, за исключением того, что теперь я хочу использовать сторонний пакет, который пропускает небольшой объем памяти. У меня нет особой необходимости исправлять утечки, но вывод раздражает, так как он скрывает «подлинные» утечки, которые могут быть внесены.

Как можно отключить эту проверку на утечку для определенного файла или проекта, но оставить ее включенной для других? Насколько я понимаю, он включается через #define в режиме отладки - у меня была небольшая скрипка, но мне не удалось найти что-то, что я могу #undef, чтобы отключить.

1 Ответ

4 голосов
/ 12 октября 2009

Вы можете отключить проверку выделения кучи в соответствующих файлах, используя _CrtSetDbgFlag () и макрос _CRTDBG_CHECK_DEFAULT_DF (равный 0) перед первой инструкцией new в файле, где вы этого не делаете хотите проверить утечки памяти и устранить их сразу после new инструкций. См. MSDN здесь .

Другой способ только для проектов MFC: Я лично использую макрос DEBUG_NEW для обнаружения утечек памяти. В каждый файл моего проекта я добавил свой макрос. Если вы не поместите макрос в файл, утечки памяти не будут обнаружены в нем, а только в других. Макрос объясняется здесь .

...