的新的Visual Studio運行時的一部分,我知道我必須用我的項目一起分發C/C++運行時庫。我只是想知道爲什麼微軟不爲我們做這件事?我知道Windows中包含Visual Studio 6.0運行時,但爲什麼沒有新的?爲什麼不能在Windows
如果有人能夠給我一個鏈接到一些解釋文章。我試圖谷歌一段時間沒有成功。
的新的Visual Studio運行時的一部分,我知道我必須用我的項目一起分發C/C++運行時庫。我只是想知道爲什麼微軟不爲我們做這件事?我知道Windows中包含Visual Studio 6.0運行時,但爲什麼沒有新的?爲什麼不能在Windows
如果有人能夠給我一個鏈接到一些解釋文章。我試圖谷歌一段時間沒有成功。
Windows附帶有一個C運行庫,msvcrt.dll
。 MinGW gcc變體使用該庫作爲其基本運行時。微軟還建立了鏈接到該運行時的程序(例如,作爲Windows安裝一部分的程序)。
儘管作爲Windows一部分的msvcrt.dll
與VC6的運行時DLL名稱相同,但它不一定是VC6運行時。每個新版本的Windows都增加了對msvcrt.dll
的功能,並且可能修復了一些錯誤。
WDK用於包含構建配置以鏈接到msvcrt.dll
(它看起來像WDK的最新版本支持WDK 7.1)。這些構建配置還包括一些兼容性墊片,如msvcrt_win2003.obj
,允許這樣的結構建成對msvcrt.dll
庫運行的程序包含在舊版本的Windows - 較新的異常處理增加的支持和一些較新的API,例如。
我懷疑有多種原因,MS更喜歡第三方程序鏈接到不屬於Windows系統文件的運行時。幾個可能的原因:
msvcrt.dll
的Windows更新損壞。
的VC++ 6運行時只包括某種偶然,因爲他們包括已被編譯的VC++ 6在需要它的一些計劃。今天開發的類似程序更可能依賴於(某些版本的).NET。 –
+1爲好點;似乎侵入用戶。更別說讓一個非程序員試圖安裝你的程序了:「這個C++ Runtime垃圾究竟是什麼?」 – Anthony
對於您需要的DLL,Windows是[不是交付渠道](http://blogs.msdn.com/b/oldnewthing/archive/2008/01/11/7065021.aspx)。在實踐中也不可能這樣做,你的客戶不會因爲升級了你的編譯器而更新他的Windows版本。 –