0
讓我們說DLL A作爲CRT 8.0.50727.762作爲依賴。此DLL用於與「Use Of MFC」=「使用標準Windows庫」動態鏈接(/ MD)的exe項目中。 DLL和使用該DLL的項目都使用VS 2005,但項目構建機器具有較新的CRT。所以exe文件本身對其清單中的8.0.50727.6195依賴。MSVCRT向後兼容?
現在我有兩個問題:
我的理解是正確的,因爲CRT的版本是向後兼容?
因此,當我部署項目並將CRT程序集版本8.0.50727.6195添加到exe的工作目錄時,它應該可以在任何客戶端上運行,而不管他的WinSXS緩存中有什麼權限?
DLL不能影響EXE的清單,它有它自己的。您的流程中有多個版本的CRT,這非常危險。 DLL的接口必須非常乾淨,不需要調用者需要刪除的交換對象,不會拋出異常,不會像* errno *等依賴於全局CRT狀態。 – 2014-11-05 13:16:18
但是,不應該對舊CRT的DLL請求被重定向到新的一個(exe文件)? – joste 2014-11-06 07:28:51
這是一廂情願的想法,它不會那樣工作。 – 2014-11-06 10:55:09