Cuando se crea una nueva aplicación de MFC, el asistente crea el siguiente bloque de código en casi todos los archivos CPP:¿Son realmente necesarios "#define new DEBUG_NEW" y "#undef THIS_FILE" etc.?
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
ya veces también añade esto:
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
me gustaría quitar este código de mis archivos CPP si es redundante. Estoy usando una aplicación MFC con C++/CLI en VS2008.
He intentado ejecutar en depuración después de eliminar este código de un CPP, y parece funcionar bien. Las variables "nuevas" funcionan bien, no hay fugas y los diálogos ASSERT muestran el nombre de archivo correcto y saltan a la línea ofensiva.
¿Alguien puede decirme qué hace y si es seguro eliminarlo?
¿Estás seguro? VS2008 todavía muestra un volcado de objetos de pérdida de memoria después de que eliminé el bloque de código. Tal vez este solía ser el caso en VC6 o algo ...? – demoncodemonkey
Lo siento, me acabo de dar cuenta de que hay una sutileza en lo que dice: cuando el código está allí, la ventana de salida muestra el nombre y la línea que contiene la pérdida de memoria, en lugar de solo mostrar que hay una pérdida de memoria. – demoncodemonkey
Eso explica la primera parte del código generado. ¿Qué hay de la segunda parte? #undef THIS_FILE carácter estático THIS_FILE [] = __FILE__; – demoncodemonkey