[英]C++ DLL backward compatibility with NO CLR
我已經看過SF的以下兩個鏈接,但它們對我沒有幫助:
我有一個C ++項目,它不基於CLR。 輸出是一個DLL文件。 現在,我在Windows 8上並使用Visual Studio 2013生成項目。 輸出DLL在Windows 8上可以正常工作。但是,當我將相同的輸出DLL放在窗口7中時,出現諸如“缺少DLL MSVCR120.DLL”之類的錯誤,我嘗試將缺少的DLL復制到Windows 7中的System32文件夾中,並且出現DLL丟失錯誤離開,但我的DLL仍然無法正常工作。 只有當我在Windows 7的Visual Studio 2010中構建源代碼,然后使用其輸出DLL時,它才能正常工作。 在Windows 7上,安裝了C ++可重新分發的運行時2010。 我還嘗試安裝其他版本的C ++運行時,但在Win 7上沒有成功。
我是否可以僅使用一台開發機和一個Visual Studio來創建一個(甚至多個)C ++ DLL,該DLL在大多數Windows版本(例如Vista,7、8,Server 2008等)中都可以工作? 現在,我必須使用自己的VS在每個不同的OS上構建源代碼。
PS:該項目是Windows憑據提供程序實現。
可能由於某些原因事情無法按預期進行
我沒有足夠的聲譽來發布兩個以上的鏈接,所以搜索Dependency Walker
通常,您需要在使用DLL的所有計算機上安裝VS2013可再發行組件 。
一種替代方法是構建您的項目以與靜態運行時庫鏈接,但是生成的可執行文件將更大。 這樣的答案中有更多細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.