added call to _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF) for
VC++: it gives at the end of the program report about memory leaks if any similar to the one produced by the wxwin memory diagnostic classes (but it works without problems with VC++ and costs nothing to add) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
d93f63db9d
commit
370382c71b
@ -52,6 +52,11 @@
|
|||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// use debug CRT functions for memory leak detections in VC++
|
||||||
|
#if defined(__WXDEBUG__) && defined(_MSC_VER)
|
||||||
|
#include <crtdbg.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
extern char *wxBuffer;
|
extern char *wxBuffer;
|
||||||
extern char *wxOsVersion;
|
extern char *wxOsVersion;
|
||||||
extern wxList *wxWinHandleList;
|
extern wxList *wxWinHandleList;
|
||||||
@ -332,6 +337,7 @@ void wxApp::CleanUp()
|
|||||||
delete wxWinHandleList ;
|
delete wxWinHandleList ;
|
||||||
|
|
||||||
// do it as the very last thing because everything else can log messages
|
// do it as the very last thing because everything else can log messages
|
||||||
|
wxLog::DontCreateOnDemand();
|
||||||
delete wxLog::SetActiveTarget(NULL);
|
delete wxLog::SetActiveTarget(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,6 +430,13 @@ int wxEntry(WXHINSTANCE hInstance, WXHINSTANCE WXUNUSED(hPrevInstance), char *m_
|
|||||||
{
|
{
|
||||||
wxhInstance = (HINSTANCE) hInstance;
|
wxhInstance = (HINSTANCE) hInstance;
|
||||||
|
|
||||||
|
#if defined(__WXDEBUG__) && defined(_MSC_VER)
|
||||||
|
// do check for memory leaks on program exit
|
||||||
|
// (another useful flag is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free
|
||||||
|
// deallocated memory which may be used to simulate low-memory condition)
|
||||||
|
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
|
||||||
|
#endif // debug build under MS VC++
|
||||||
|
|
||||||
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
|
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
|
||||||
|
|
||||||
#if !defined(_WINDLL)
|
#if !defined(_WINDLL)
|
||||||
@ -434,7 +447,7 @@ int wxEntry(WXHINSTANCE hInstance, WXHINSTANCE WXUNUSED(hPrevInstance), char *m_
|
|||||||
ostream* oStr = new ostream(sBuf) ;
|
ostream* oStr = new ostream(sBuf) ;
|
||||||
wxDebugContext::SetStream(oStr, sBuf);
|
wxDebugContext::SetStream(oStr, sBuf);
|
||||||
|
|
||||||
#endif
|
#endif // USE_MEMORY_TRACING
|
||||||
|
|
||||||
if (!wxApp::Initialize((WXHINSTANCE) wxhInstance))
|
if (!wxApp::Initialize((WXHINSTANCE) wxhInstance))
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user