From de6019fb157459e7e7610e3ff813ad8c4a3225cf Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 12 Nov 1999 15:15:14 +0000 Subject: [PATCH] OutputDebugStringW95 removed - it's really unnecessary - and the references to DBWIN32 in the docs replaced with DbgView git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/body.tex | 3 +- docs/latex/wx/function.tex | 6 +- docs/latex/wx/tlog.tex | 3 + include/wx/msw/private.h | 16 ----- include/wx/msw/setup0.h | 9 --- src/msw/utils.cpp | 134 ------------------------------------- 6 files changed, 7 insertions(+), 164 deletions(-) diff --git a/docs/latex/wx/body.tex b/docs/latex/wx/body.tex index 3c6903767d..b4a7c6fe2c 100644 --- a/docs/latex/wx/body.tex +++ b/docs/latex/wx/body.tex @@ -727,7 +727,8 @@ See the \helpref{debugging overview}{debuggingoverview} for further information. \subsection{Check Windows debug messages} -Under Windows, it's worth running your program with DBWIN running or +Under Windows, it's worth running your program with DbgView (available from +{\tt http://www.sysinternals.com} running or some other program that shows Windows-generated debug messages. It's possible it'll show invalid handles being used. You may have fun seeing what commercial programs cause these normally hidden errors! Microsoft diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex index c091da2b8e..68dcaad9c2 100644 --- a/docs/latex/wx/function.tex +++ b/docs/latex/wx/function.tex @@ -1022,6 +1022,8 @@ See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}} +{\bf This function is deprecated, use \helpref{wxLogDebug}{wxlogoverview} instead!} + Display a debugging message; under Windows, this will appear on the debugger command window, and under Unix, it will be written to standard error. @@ -1029,10 +1031,6 @@ error. The syntax is identical to {\bf printf}: pass a format string and a variable list of arguments. -Note that under Windows, you can see the debugging messages without a -debugger if you have the DBWIN debug log application that comes with -Microsoft C++. - {\bf Tip:} under Windows, if your application crashes before the message appears in the debugging window, put a wxYield call after each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s diff --git a/docs/latex/wx/tlog.tex b/docs/latex/wx/tlog.tex index 8c031a488f..76ad6ce626 100644 --- a/docs/latex/wx/tlog.tex +++ b/docs/latex/wx/tlog.tex @@ -44,6 +44,9 @@ first argument. \item{\bf wxLogDebug} is {\bf the} right function for debug output. It only does anything at all in the debug mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise). +{\bf Tip:} under Windows, you must either run the program under debugger or +use a 3rd party program such as DbgView (from +{\tt http://www.sysinternals.com}) to actually see the debug output. \item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug build. The reason for making it a separate function from it is that usually there are a lot of trace messages, so it might make sense to separate them diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 2a864639df..4c7c5628d9 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -196,22 +196,6 @@ extern LONG APIENTRY _EXPORT #define ENDSESSION_LOGOFF 0x80000000 #endif -// --------------------------------------------------------------------------- -// debug messages -// --------------------------------------------------------------------------- -#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32 - - #ifndef __TWIN32__ - #ifdef OutputDebugString - #undef OutputDebugString - #endif - - #define OutputDebugString OutputDebugStringW95 - #endif // __TWIN32__ - - extern void OutputDebugStringW95(const wxChar*, ...); -#endif // USE_DBWIN32 - // --------------------------------------------------------------------------- // useful macros and functions // --------------------------------------------------------------------------- diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index d76043d872..5b41f8eb8c 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -332,9 +332,6 @@ #define wxUSE_NATIVE_STATUSBAR 1 // Set to 0 to use cross-platform wxStatusBar -#define wxUSE_DBWIN32 1 - // Use Andrew Tucker's OutputDebugString implementation - // (required on Win95 only). See utils.cpp. /* * Any platform @@ -382,9 +379,6 @@ #undef wxUSE_THREADS #define wxUSE_THREADS 0 -#undef wxUSE_DBWIN32 -#define wxUSE_DBWIN32 0 - #undef wxUSE_OWNER_DRAWN #define wxUSE_OWNER_DRAWN 0 #endif @@ -394,9 +388,6 @@ #undef wxUSE_THREADS #define wxUSE_THREADS 0 -#undef wxUSE_DBWIN32 -#define wxUSE_DBWIN32 0 - #undef wxUSE_ODBC #define wxUSE_ODBC 0 diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 3555808464..8b36c7a3de 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -1064,140 +1064,6 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special ) #endif -#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32 - -/* -When I started programming with Visual C++ v4.0, I missed one of my favorite -tools -- DBWIN. Finding the code for a simple debug trace utility, DBMON, -on MSDN was a step in the right direction, but it is a console application -and thus has limited features and extensibility. DBWIN32 is my creation -to solve this problem. - -The code is essentially a merging of a stripped down version of the DBWIN code -from VC 1.5 and DBMON.C with a few 32 bit changes. - -As of version 1.2B, DBWIN32 supports both Win95 and NT. The NT support is -built into the operating system and works just by running DBWIN32. The Win95 -team decided not to support this hook, so I have provided code that will do -this for you. See the file WIN95.TXT for instructions on installing this. - -If you have questions, problems or suggestions about DBWIN32, I welcome your -feedback and plan to actively maintain the code. - -Andrew Tucker -ast@halcyon.com - -To download dbwin32, see e.g.: - -http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip -*/ - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) && !defined(__TWIN32__) -#include -#endif - -void OutputDebugStringW95(const wxChar* lpOutputString, ...) -{ - HANDLE heventDBWIN; /* DBWIN32 synchronization object */ - HANDLE heventData; /* data passing synch object */ - HANDLE hSharedFile; /* memory mapped file shared data */ - LPSTR lpszSharedMem; - wxChar achBuffer[500]; - - /* create the output buffer */ - va_list args; - va_start(args, lpOutputString); - wxVsprintf(achBuffer, lpOutputString, args); - va_end(args); - - /* - Do a regular OutputDebugString so that the output is - still seen in the debugger window if it exists. - - This ifdef is necessary to avoid infinite recursion - from the inclusion of W95TRACE.H - */ -#ifdef _UNICODE - ::OutputDebugStringW(achBuffer); -#else -#ifdef __TWIN32__ - ::OutputDebugString(achBuffer); -#else - ::OutputDebugStringA(achBuffer); -#endif -#endif - - /* bail if it's not Win95 */ - { - OSVERSIONINFO VerInfo; - VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&VerInfo); - if ( VerInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS ) - return; - } - - /* make sure DBWIN is open and waiting */ - heventDBWIN = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_BUFFER_READY")); - if ( !heventDBWIN ) - { - //MessageBox(NULL, wxT("DBWIN_BUFFER_READY nonexistent"), NULL, MB_OK); - return; - } - - /* get a handle to the data synch object */ - heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_DATA_READY")); - if ( !heventData ) - { - // MessageBox(NULL, wxT("DBWIN_DATA_READY nonexistent"), NULL, MB_OK); - CloseHandle(heventDBWIN); - return; - } - - hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, wxT("DBWIN_BUFFER")); - if (!hSharedFile) - { - //MessageBox(NULL, wxT("DebugTrace: Unable to create file mapping object DBWIN_BUFFER"), wxT("Error"), MB_OK); - CloseHandle(heventDBWIN); - CloseHandle(heventData); - return; - } - - lpszSharedMem = (LPSTR)MapViewOfFile(hSharedFile, FILE_MAP_WRITE, 0, 0, 512); - if (!lpszSharedMem) - { - //MessageBox(NULL, wxT("DebugTrace: Unable to map shared memory"), wxT("Error"), MB_OK); - CloseHandle(heventDBWIN); - CloseHandle(heventData); - return; - } - - /* wait for buffer event */ - WaitForSingleObject(heventDBWIN, INFINITE); - - /* write it to the shared memory */ -#if defined( __BORLANDC__ ) || defined( __MWERKS__ ) || defined(__SALFORDC__) - *((LPDWORD)lpszSharedMem) = getpid(); -#else - *((LPDWORD)lpszSharedMem) = _getpid(); -#endif - - wsprintf((LPTSTR)(lpszSharedMem + sizeof(DWORD)), wxT("%s"), achBuffer); - - /* signal data ready event */ - SetEvent(heventData); - - /* clean up handles */ - CloseHandle(hSharedFile); - CloseHandle(heventData); - CloseHandle(heventDBWIN); - - return; -} - - -#endif - - #if 0 // maximum mumber of lines the output console should have -- 2.45.2