AfxCheckMemory
Diese Funktion untersucht den freien Speicherpool und bei Bedarf Fehlermeldungen ausgegeben.
BOOL AfxCheckMemory( );
Rückgabewert
Ungleich 0 (null), wenn keine Fehler im Arbeitsspeicher; andernfalls 0.
Hinweise
Wenn die Funktion keine Speicherschäden erkennt, gibt es keine Aktion aus.
Alle Speicherblöcke, die zur Zeit auf dem Heap zugeordnet sind, werden einschließlich der überprüft wird, die durch new zugeordnet sind, aber nicht von der Direktrufe zu den zugrunde liegenden Speicherbelegungsfunktionen, wie der malloc-Funktion oder der Funktion GlobalAlloc Windows zugeordnet sind.Falls eine beschädigte Block gefunden wird, wird eine Meldung mit der Debugger die Ausgabe ausgegeben wird.
Wenn Sie die Zeile einfügen
#define new DEBUG_NEW
Zeigen Sie in einem Unterprogramm nachfolgende Aufrufe von AfxCheckMemory den Dateinamen und die Zeilennummer, in der der Arbeitsspeicher belegt wurde.
Hinweis |
---|
Wenn das Modul eine oder mehrere Implementierungen von serialisierbaren Klassen enthält, müssen Sie die #define Zeile hinter dem letzten IMPLEMENT_SERIAL Makro-Aufruf stellen. |
Diese Funktion wird nur in der Debugversion von MFC.
Beispiel
CAge* pcage = new CAge(21); // CAge is derived from CObject.
Age* page = new Age(22); // Age is NOT derived from CObject.
*(((char*)pcage) - 1) = 99; // Corrupt preceding guard byte
*(((char*)page) - 1) = 99; // Corrupt preceding guard byte
AfxCheckMemory();
Anforderungen
Header: afx.h