在以前在Visual Studio中開發Windows上的C++項目時,Visual Studio版本將具有其自己版本的C和C++庫,並且您的項目將引用特定版本的Windows SDK以訪問標題用於訪問Win32平臺。如果您安裝了多個Windows SDK版本,則會有一個涉及環境變量的複雜系統,使您可以選擇默認情況下使用Windows SDK Visual Studio的哪個版本。什麼是Windows套件,它們是如何工作的?
這不是很好,讓它正常工作需要一點點挖掘,但它只是工作。
剛剛從VS2012升級到VS2015,在我看來,無論這個系統被替換爲徹底破碎,還是我只是不理解它。
升級包含conio.h的簡單VS2012 C++控制檯應用程序到VS2015中斷,沒有錯誤報告。爲什麼? conio.h不再存在於Visual Studio C/C++庫中,而是現在存在於Windows Kit 10中,升級該項目不會重置所用的SDK(如您所期望的那樣)。
在VS2015中創建一個全新的Hello World C++應用程序,C++項目包括繼承$(VC_IncludePath)和$(WindowsSDK_IncludePath)的目錄。 $(WindowsSDK_IncludePath)從C:\ Program Files(x86)\ Windows Kits \ 8.1中取出頭文件,而$(VC_IncludePath)從C:\ Program Files文件(x86)\ Windows Kits \ 10中取入頭文件。
如此簡單的項目升級失敗,升級時不報告錯誤。清理新的控制檯項目同時從兩個不同的Windows Kit安裝中拉出頭文件,並且現在我在C:\ Program Files(x86)\ Microsoft SDK和C:\ Program Files(x86)\ Windows Kits下具有8.1和10的條目。 Windows Kit 8.1包含Win32和WinRt頭文件,而Windows Kit 10包含C/C++頭文件。
我是否有錯誤配置和損壞的安裝,或者這是怎麼回事?
如果這混亂是應該如何,這是如何工作的?我試過在MSDN上搜索有關Windows套件的信息,但沒有發現任何關於Windows驅動程序套件的東西,這些套件曾經是完全不同的東西,但我不知道它是否仍然存在。
是否有任何我已經遺漏的文檔解釋了這個庫配置背後的基本原理以及它如何使用?
微軟有一個非常困難和苛刻的客戶。它的名字是微軟。政治是無聊的,並沒有解決任何人的問題。您只需修復「項目」>「屬性」>「VC++目錄」>「包含目錄」。將其恢復爲$(VC_IncludePath); $(WindowsSDK_IncludePath),其值爲5個目錄。這可能會破壞你的項目,改爲使用C/C++> General> Additional Include Directories設置。 –
我很抱歉,但我很難理解哪些部分是您需要解決的問題,哪些部分只是您抱怨的問題。如果你能夠提供一個簡單的代碼示例,那麼這可能會有所幫助。 – user34660
我試圖瞭解Windows套件如何與舊的Windows SDK相關聯,以及如何預計將配置項目以使用它們的不同版本。這是一個Visual Studio項目配置問題,而不是代碼問題。如果你不明白或不感興趣,那很好,但請不要因爲你不感興趣而投票結束我的問題,因爲如果一個好的答案出現了,那對其他人來說仍然是非常有用的。 – Neutrino