Wenn Sie eine neue MFC-Anwendung erstellen, erstellt der Assistent den folgenden Code-Block in fast jeder CPP-Datei:Sind "#define new DEBUG_NEW" und "#undef THIS_FILE" etc. eigentlich notwendig?
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
und manchmal fügt es auch dies:
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
Ich würde entfernen möchte Dieser Code aus meinen CPP-Dateien, wenn es redundant ist. Ich verwende eine MFC-App mit C++/CLI auf VS2008.
Ich habe versucht, in Debug ausgeführt nach dem Löschen dieses Codes von einem CPP, und es scheint zu funktionieren. "neue" Variablen funktionieren gut, es gibt keine Lecks und ASSERT-Dialoge zeigen den korrekten Dateinamen an und springen zur fehlerhaften Zeile.
Kann mir jemand sagen, was es tut und ob es sicher ist, es zu löschen?
Sind Sie sicher? VS2008 zeigt weiterhin einen Speicherleckobjektspeicher an, nachdem ich den Codeblock gelöscht habe. Vielleicht war das bei VC6 so oder so ...? – demoncodemonkey
Entschuldigung, ich habe gerade bemerkt, dass es eine Feinsinnigkeit zu dem gibt, was Sie gesagt haben - wenn der Code da ist, zeigt das Ausgabefenster den Dateinamen und die Zeile mit dem Speicherleck, anstatt nur zu zeigen, dass ein Speicherleck vorliegt. – demoncodemonkey
Das erklärt also den ersten Teil des generierten Codes. Was ist mit dem 2. Teil? #undef THIS_FILE static char DIES_FILE [] = __FILE__; – demoncodemonkey