看板 C_and_CPP 關於我們 聯絡資訊
這個問題和以下幾個 macro 的定義有關: WINVER 代表最低平台需求 _WIN32_WINNT 代表最低的 Win NT 平台需求 _WIN32_WINDOWS 代表最低的 Win 9x 平台需求 _WIN32_IE 代表最低的 IE 需求 這些 macro 的數值可以參考:Using the WIndows Headers (Windows) http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx 在 Visual C++ 2008 Express 當中,建立新專案而不勾選「空白專案」的話, targetver.h 就有這些 macro 的定義。如果建立空白專案或者直接開啟 MSDN 所附上的 範例專案就要自行定義這些 macro ,並且確定在 compile 的時候它們出現在最前面。 以 rebar 的問題來說只要在一開始有下面三行程式碼就可以了: #ifndef _WIN32_WINNT // 指定最低平台需求為 Windows NT 4.0。 #define _WIN32_WINNT 0x0400 // 將它變更為針對 Windows 其他版本的適當值。 #endif 以上是在 Visual C++ 的解決方法,而我在 MinGW + Eclipse + CDT 環境下的測試 發現需要定義的 macro 不一樣: #ifndef _WIN32_IE // 指定最低平台需求為 Internet Explorer 4.0。 #define _WIN32_IE 0x0400 // 將它變更為針對 IE 其他版本的適當值。 #endif 最保險的方法就是讓四個 macro 都有定義。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.96.116
purpose:可以理解用MFC、SDK寫視窗程式,為什麼會老是被罵了 09/26 00:37