2011-07-01 22 views
0

所以,當我使用的功能,IsWin2000(),找出計算機是否不運行我的應用程序運行的是Windows 2000,我得到的警告:使用功能IsWin2000(的產生C++警告:C4996 - 過時的功能

warning C4996: 'IsWin2000': This function is exported to support existing modules and is obsolete. 

如果這是一個過時的,不推薦使用的函數,查詢什麼操作系統正在運行的正確方法是什麼?有沒有其他的方法可以完成這個任務,或者是我唯一的選擇來簡單地禁止警告?謝謝!

+0

你不應該在所有這樣做。你爲什麼要調用這個函數? – SLaks

回答

3

GetVersionEx

看到OSVERSIONINFO備註爲結果的列表,以及如何解釋它們。有關完整的示例,請參見Getting the System Version

,並讓不要忘記了規範說:

識別當前運行 系統通常不是 的最佳方式確定特定 操作系統特性是否存在。 這是因爲操作系統 可能已經在 再發行的DLL添加的新功能。而不是使用 GetVersionEx來確定 操作系統平臺或版本號 ,試作 特徵的存在本身

2

這不是一個標準的Windows API函數。也許如果你提到你的位置,我們可以提供更多信息。

的正確方法取決於你所要完成的任務。創建調試日誌或錯誤報告,您應該致電GetVersionEx

對於任何其他目的,您應該測試您嘗試使用的實際功能,通常是GetProcAddress,而不是硬編碼版本測試。