removed "#include "windows.h"" from core headers
authorVadim Pisarevsky <no@email>
Fri, 13 May 2011 20:00:58 +0000 (20:00 +0000)
committerVadim Pisarevsky <no@email>
Fri, 13 May 2011 20:00:58 +0000 (20:00 +0000)
modules/core/include/opencv2/core/operations.hpp
modules/highgui/src/window_w32.cpp
samples/cpp/bagofwords_classification.cpp

index 0d12d5e..24f5684 100644 (file)
   #endif
     
 #elif defined WIN32 || defined _WIN32
-
-  #if defined _MSC_VER && defined _M_IX86
-    static inline int CV_XADD( int* addr, int delta )
-    {
-        int tmp;
-        __asm
-        {
-            mov edx, addr
-            mov eax, delta
-            lock xadd [edx], eax
-            mov tmp, eax
-        }
-        return tmp;
-    }
-  #else
-    #include "windows.h"
-    #undef min
-    #undef max
-    #define CV_XADD(addr,delta) InterlockedExchangeAdd((LONG volatile*)(addr), (delta))
-  #endif
-      
+  #define CV_XADD(addr,delta) _InterlockedExchangeAdd((long volatile*)(addr), (delta))
 #else
 
   template<typename _Tp> static inline _Tp CV_XADD(_Tp* addr, _Tp delta)
index 2ac5e7e..0a2dc10 100644 (file)
@@ -179,6 +179,8 @@ static LRESULT CALLBACK MainWindowProc(  HWND hwnd, UINT uMsg, WPARAM wParam, LP
 static void icvUpdateWindowPos( CvWindow* window );
 
 static CvWindow* hg_windows = 0;
+
+typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*);
 static CvWin32WindowCallback hg_on_preprocess = 0, hg_on_postprocess = 0;
 static HINSTANCE hg_hinstance = 0;
 
@@ -1671,8 +1673,6 @@ CV_IMPL const char* cvGetWindowName( void* window_handle )
 }
 
 
-typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*);
-
 CV_IMPL void
 cvSetPreprocessFuncWin32_(const void* callback)
 {
index f48ed7c..7203ccc 100644 (file)
@@ -8,6 +8,10 @@
 #include <memory>
 
 #if defined WIN32 || defined _WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef min
+#undef max
 #include "sys/types.h"
 #endif
 #include <sys/stat.h>