2010-08-04 71 views
0

是否有預處理器的值,我可以用它來檢測程序正在編譯的Windows Mobile 6.5.3?例如,我可以使用#if (_WIN32_WCE >= 0x501)編譯Windows Mobile 5及更高版本的代碼,或者編輯Windows Mobile 6的代碼#if _WIN32_WCE >= 0x502Windows Mobile 6.5.3預處理器

Windows Mobile 6.5.3中存在一些不存在的新API在Windows Mobile 6中。我想確保WM 6.5.3調用沒有被編譯到WM 6,WM 5和Pocket PC 2003構建配置中。

回答

0

該版本是指Windows CE版本,我不相信Windows Mobile版本。

從我記得,這個版本的定義是在0xXYZ的形式,其中X是主要版本,Y是次要版本,Z是修訂。因此,如果0x502涉及Windows Mobile 6或更高版本,則意味着Windows Mobile 6將在Windows CE 5.0.2上運行。

你需要弄清楚Windows Mobile 6.5.3使用的是哪個版本的Windows CE,如果它使用不同的版本,並比較定義。如果它不使用不同版本的Windows CE(我認爲是這樣),我認爲你運氣不好。

我不認爲有任何類型的預處理器針對特定版本的Windows Mobile,所以你不得不做兩個獨立的版本,並使用自己的定義。據我所知,你只能在運行時獲得Windows Mobile版本,而這樣做並不是非常簡單。