--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/msvcrt.h
+// Purpose: macros to use some non-standard features of MS Visual C++
+// C run-time library
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 31.01.1999
+// RCS-ID: $Id$
+// Copyright: (c) Vadim Zeitlin
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// the goal of this file is to define wxCrtSetDbgFlag() macro which may be
+// used like this:
+// wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
+// to turn on memory leak checks for programs compiled with Microsoft Visual
+// C++ (5.0+). The macro will expand to nothing under other compilers.
+
+#ifndef _MSW_MSVCRT_H_
+#define _MSW_MSVCRT_H_
+
+// use debug CRT functions for memory leak detections in VC++ if we're not
+// using wxWindows own methods
+#if defined(__WXDEBUG__) && defined(_MSC_VER) && !wxUSE_GLOBAL_MEMORY_OPERATORS && !defined(__NO_VC_CRTDBG__)
+ #define wxUSE_VC_CRTDBG
+#else
+ #undef wxUSE_VC_CRTDBG
+#endif
+
+#ifdef wxUSE_VC_CRTDBG
+ // VC++ uses this macro as debug/release mode indicator
+ #ifndef _DEBUG
+ #define _DEBUG
+ #endif
+
+ // Need to undef new if including crtdbg.h which redefines new itself
+ #ifdef new
+ #undef new
+ #endif
+
+ #include <crtdbg.h>
+
+ #define wxCrtSetDbgFlag(flag) \
+ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag))
+#else // !using VC CRT
+ #define wxCrtSetDbgFlag(flag)
+#endif // wxUSE_VC_CRTDBG
+
+#endif // _MSW_MSVCRT_H_
\ No newline at end of file
// Also, OLE is used not just for drag and drop (it's used by automatn.cpp).
// #if wxUSE_DRAG_AND_DROP
#if !defined(__GNUWIN32__) && !defined(__SC__) && !defined(__SALFORDC__)
-#include <ole2.h>
+ #include <ole2.h>
#endif
-// #endif
-
#include <string.h>
#include <ctype.h>
#include <commctrl.h>
#endif
-// use debug CRT functions for memory leak detections in VC++ if we're not
-// using wxWindows own methods
-#if defined(__WXDEBUG__) && defined(_MSC_VER) && !wxUSE_GLOBAL_MEMORY_OPERATORS && !defined(__NO_VC_CRTDBG__)
- #define wxUSE_VC_CRTDBG
-#else
- #undef wxUSE_VC_CRTDBG
-#endif
-
-#ifdef wxUSE_VC_CRTDBG
- // VC++ uses this macro as debug/release mode indicator
- #ifndef _DEBUG
- #define _DEBUG
- #endif
-
- /* Need to undef new if including crtdbg.h */
- #ifdef new
- #undef new
- #endif
-
- #include <crtdbg.h>
-
- #if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS
- #define new new(__FILE__,__LINE__)
- #endif
-#endif // wxUSE_VC_CRTDBG
+#include "wx/msw/msvcrt.h"
extern char *wxBuffer;
extern char *wxOsVersion;
wxBuffer = new char[1500];
-#ifdef wxUSE_VC_CRTDBG
- // 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++
-
wxClassInfo::InitializeClasses();
#if wxUSE_RESOURCES
wxWinHandleList = new wxList(wxKEY_INTEGER);
- // This is to foil optimizations in Visual C++ that
- // throw out dummy.obj.
+ // This is to foil optimizations in Visual C++ that throw out dummy.obj.
// PLEASE DO NOT ALTER THIS.
#if defined(_MSC_VER) && !defined(WXMAKINGDLL)
extern char wxDummyChar;
int nCmdShow,
bool enterLoop)
{
+ // 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)
+ wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
+
// take everything into a try-except block in release build
// FIXME other compilers must support Win32 SEH (structured exception
// handling) too, just find the appropriate keyword in their docs!
* Copyright: (c) 1993, AIAI, University of Edinburgh
*/
-/* static const char sccsid[] = "@(#)dummy.cc 1.2 5/9/94"; */
-
/* A dummy file to include wx.h. If precompiling wx.h, I
* always start by compiling this and producing the PCH file.
* Then subsequent source files use the PCH file.
* This will produce a big PCH file.
*/
-
-
#if defined(__BORLANDC__)
#if !(defined(__WIN32__) || defined(__NT__) || defined(__WIN32__))
#pragma hdrfile "c:\wx\src\msw\wx.pch"
#endif
#include "wx/wxprec.h"
-#include "windows.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
+#include <windows.h>
+
+#include "wx/msw/msvcrt.h"
+
// Foils optimizations in Visual C++ (see also app.cpp). Without it,
// dummy.obj isn't linked and we get a linker error.
#if defined(_MSC_VER)
-char wxDummyChar=0;
+ char wxDummyChar = 0;
#endif
+// if wxWindows is in the DLL link our entry point with the application
#if defined(WXUSINGDLL)
// NT defines APIENTRY, 3.x not
#if !defined(APIENTRY)
-#define APIENTRY FAR PASCAL
+ #define APIENTRY FAR PASCAL
#endif
+int
#ifdef __WATCOMC__
-int PASCAL
+ PASCAL
#else
-int APIENTRY
+ APIENTRY
#endif
-
- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR m_lpCmdLine,
- int nCmdShow )
+WinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR m_lpCmdLine,
+ int nCmdShow )
{
- return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance, m_lpCmdLine, nCmdShow);
+ wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
+
+ return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance,
+ m_lpCmdLine, nCmdShow);
}
#endif