]> git.saurik.com Git - wxWidgets.git/commitdiff
implemented wxIsDebuggerRunning() for Win32
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 8 Jan 2005 17:44:46 +0000 (17:44 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 8 Jan 2005 17:44:46 +0000 (17:44 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31296 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/function.tex
include/wx/debug.h
src/msw/utils.cpp

index 9ede1fbaa6edcb1d83de50318aab9bc8a29349af..852ce33397f3a7c12a682d5d84513e53c70c432a 100644 (file)
@@ -4213,11 +4213,10 @@ In release mode this function does nothing.
 
 \func{bool}{wxIsDebuggerRunning}{\void}
 
 
 \func{bool}{wxIsDebuggerRunning}{\void}
 
-Returns {\tt true} if the program is running under debugger, {\tt false} 
-otherwise.
+Returns \true if the program is running under debugger, \false otherwise.
 
 
-Please note that this function is currently only implemented for Mac builds
-using CodeWarrior and always returns {\tt false} elsewhere.
+Please note that this function is currently only implemented for Win32 and Mac
+builds using CodeWarrior and always returns \false elsewhere.
 
 
 
 
 
 
index 5f1e1559bb782cc15f1a1a0e52cfc820b8d392c2..f0ca48d9fc12701b63438d7e6ec620bf00c0f521 100644 (file)
 /*  other miscellaneous debugger-related functions */
 /*  ---------------------------------------------------------------------------- */
 
 /*  other miscellaneous debugger-related functions */
 /*  ---------------------------------------------------------------------------- */
 
-/*  return true if we're running under debugger */
-/*  */
-/*  currently this only really works under Mac in CodeWarrior builds, it always */
-/*  returns false otherwise */
+/*
+    Return true if we're running under debugger.
+
+    Currently this only really works under Win32 and Mac in CodeWarrior builds,
+    it always returns false in other cases.
+ */
 #ifdef __cplusplus
 #ifdef __cplusplus
-    #ifdef __WXMAC__
+    #if defined(__WXMAC__) || defined(__WXMSW__)
         extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning();
     #else /*  !Mac */
         inline bool wxIsDebuggerRunning() { return false; }
         extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning();
     #else /*  !Mac */
         inline bool wxIsDebuggerRunning() { return false; }
index f174df6fd3652046e090d8d1e19f6d9435d27950..71f5e6521e775a864eb66094b9670987acb7b7b3 100644 (file)
@@ -1036,6 +1036,25 @@ void wxBell()
     ::MessageBeep((UINT)-1);        // default sound
 }
 
     ::MessageBeep((UINT)-1);        // default sound
 }
 
+bool wxIsDebuggerRunning()
+{
+    // IsDebuggerPresent() is not available under Win95, so load it dynamically
+    wxDynamicLibrary dll(_T("kernel32.dll"), wxDL_VERBATIM);
+
+    typedef BOOL (WINAPI *IsDebuggerPresent_t)();
+    if ( !dll.HasSymbol(_T("IsDebuggerPresent")) )
+    {
+        // no way to know, assume no
+        return false;
+    }
+
+    return (*(IsDebuggerPresent_t)dll.GetSymbol(_T("IsDebuggerPresent")))() != 0;
+}
+
+// ----------------------------------------------------------------------------
+// OS version
+// ----------------------------------------------------------------------------
+
 wxString wxGetOsDescription()
 {
     wxString str;
 wxString wxGetOsDescription()
 {
     wxString str;