2016年11月1日 星期二

Modify _WIN32_IE definition in MinGW commctrl.h

這個問題是在使用 MinGW g++ 編譯 OpenCV Libraries 發現的問題,
編譯的過程產生的現象如下:
C:\opencv\sources\modules\highgui\src\window_w32.cpp:51:6: warning: "_WIN32_IE" is not defined [-Wundef]
#if (_WIN32_IE < 0x0500)
...

起因是 _WIN32_IE 的定義在 MinGW 裏面未符合使用者的作業系統版本。

所以,只要把 MinGW 套件中的 commctrl.h 程式改變幾行就可以了, 如下:

原來的版本:
#ifndef _WIN32_IE
/* define _WIN32_IE if you really want it */
#if 0
#define _WIN32_IE 0x0300
#endif
#endif

改成:
#ifndef _WIN32_IE
/* define _WIN32_IE if you really want it */
#if 1
#define _WIN32_IE 0x0601
#endif
#endif
即可。(0x0601 代表作業系統是 Windows 7)

沒有留言:

張貼留言