]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/thread.cpp
compilation fix for non-threaded compilation (threads are still broken
[wxWidgets.git] / src / msw / thread.cpp
index aadfc9f070c11c3ded380682ba676db8dab08760..ac600434e9e7c561be8265db2635984639c2d4ae 100644 (file)
     #define _MT
 #endif
 
-#ifdef __VISUALC__
+#if defined(__VISUALC__) || (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500))
+
+#if defined(__BORLANDC__) && !defined(__MT__)
+// I can't set -tWM in the IDE (anyone?) so have to do this
+#define __MT__
+#endif
+
+#if defined(__BORLANDC__) && !defined(__MFC_COMPAT__)
+// Needed to know about _beginthreadex etc..
+#define __MFC_COMPAT__
+#endif
+
+
     #include <process.h>
 #endif
 
@@ -442,7 +454,7 @@ bool wxThreadInternal::Create(wxThread *thread)
     // for compilers which have it, we should use C RTL function for thread
     // creation instead of Win32 API one because otherwise we will have memory
     // leaks if the thread uses C RTL (and most threads do)
-#ifdef __VISUALC__
+#if defined(__VISUALC__) || (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500))
     typedef unsigned (__stdcall *RtlThreadStart)(void *);
 
     m_hThread = (HANDLE)_beginthreadex(NULL, 0,
@@ -912,7 +924,7 @@ void wxThread::Exit(ExitCode status)
         delete this;
     }
 
-#ifdef __VISUALC__
+#if defined(__VISUALC__) || (defined(__BORLANDC__) && (__BORLANDC__ >= 0x500))
     _endthreadex((unsigned)status);
 #else // !VC++
     ::ExitThread((DWORD)status);