2013-01-07 57 views
0

我們的產品包含我們向客戶發送的DLL。Windows 8認證要求:動態鏈接運行時間

提供Windows 8版本時,我注意到我無法靜態鏈接到CRT,否則使用我們的DLL的應用程序無法通過認證。

我找不到任何提到的文檔。有人知道爲什麼這是不可能的或如何實現它?

我們的產品只使用malloc/free和數學函數。如果要靜態鏈接到CRT,而不是要求每個與我們鏈接的應用程序都安裝正確的vc redist,那將更加簡單。 (和ffs爲什麼不通過Windows Update頻道部署vc redist?)

+0

通過Windows Update的** **被分配好了,安全補丁無論如何,在過去的幾年中已經有很多了,這當然是爲什麼要提醒你,這確保了微軟能夠修復他們的代碼中的安全漏洞,我沒有另外看到它在需求清單中明確列出 –

+0

使用VS2012構建的可執行文件(無更新1)不安裝Visual Studio redists時不運行在Windows 8上 –

回答

1

Windows Store應用程序只能使用VS 2012和當前的CRT構建。關鍵是Windows應用商店不支持CRT的靜態鏈接。

這裏是關於CRT一些信息:

Windows應用商店的應用程序,Windows運行時和C運行時 http://msdn.microsoft.com/en-us/library/hh972425.aspx

這裏是不支持的CRT例程列表: http://msdn.microsoft.com/en-us/library/hh674596.aspx

羅布·卡普蘭寫道這裏:

http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/0fa0695f-9828-46ac-985b-5ca15f3bee0a

「如果您的lib鏈接到符合Metro風格應用的C運行時,您將能夠調用標準C函數,如fopen。您可以根據App Cert Kit進行測試以確認。比VC 2012更老的運行時將無法工作。

您的應用程序仍然會受到安全沙箱,不會有它的應用程序和數據包的外部訪問的目錄。」

+0

這是否意味着當您要構建桌面應用程序時靜態鏈接到CRT(/ MT)可以嗎? –

相關問題