win10 系統下獲取系統版本號為6 2的問題

2021-07-04 13:33:07 字數 751 閱讀 1194

近期趕時髦公升級了win10,用著挺爽。但是某天在測試乙個bug時發現要對win10做特殊處理,於是直接呼叫了getversionex,並取出版本號進行判斷,但是發現得到的版本竟然是6.2。當時就被雷到了,然後看了我們的其它產品中相關功能,皆獲取的是6.2。

在搜尋一會兒之後,發現這是微軟故意做的設定,getversionex函式可能在win8.1之後會取消,推薦程式設計師們使用version helper apis

,所以在8.1之後的系統中此函式的行為改變了,如果程式沒有加上正確的manifested以表明此程式相容新系統,則只能得到6.2這個版本號。

下面說說,需要如何新增乙個正確的manifest,也可以去msdn上直接看原始文件

首先,如果原來程式就已經設定了附加乙個額外的manifest檔案,則直接在原來的manifest裡的assembly根節點裡加一段相容指示:

如果原來沒有乙個manifest檔案,則可以在工程的某目錄建立乙個 ***.manifest檔案,裡面寫上以下內容,當然內容中的工程名稱可以隨意,並沒有強制,只要確保compatibility節點的值不變就可以了:

<?xml version="1.0" encoding="utf-8"?> 

工程名稱

然後在vs工程屬性裡找到「清單工具->輸入和輸出->附加清單檔案」裡填入manifest檔案的相對路徑,然後重新鏈結,你的程式就可以正常的使用getversionex了。但出了新系統之後,估計還是要重新改下manifest以相容新的系統。

Win10版本號區分

版本號內部版本號 universalapicontract 首個正式版 1507 10240 1首個重大更新 1511 10586 2一週年更新 anniversary update 1607 14393 3創意者更新 creators update 1703 15063 4秋季創意者更新 fall...

獲取Android系統版本號

威哥這裡和大家一起分享下,首先我們需要在build.gradle檔案中配置每次公升級的版本序號和版本顯示名稱,版本號必須大於上次發布的版本號。注意 系統內嵌版本序號為int型別。廢話不多說,威哥直接上版本獲取方法 系統幫助類 author william 徐威 create time 2018 12...

Android 檢查系統版本號

android系統的每一次公升級都會帶來一些更新,有些更新是在原有的介面上相容更新,但也有些更新是覆蓋之前的介面而不相容的 比如 相機介面camera 5.0以前 和 camera2 5.0起支援 此時需要在應用中根據adnroid版本分別處理,以求支援不同的android版本 sdk中的類buil...