[英]Creating redistrubutable C/C++ DLLs with VS2012
我有一個使用vc.mak makefile構建解決方案的VS2012 C ++項目。 我建立了一個.exe和.dll,它們或多或少都相同(exe具有main()大約是唯一的區別)。
我需要做些什么才能使這兩段代碼可以在Windows的多個版本上運行? 我正在使用Windows 8.1 Pro,當然可以運行exe並使用dll。 我構建了一個新的Win8.1 Pro VM,發現嘗試運行.exe,但缺少MSVCR110.dll文件,因此我將其復制並運行。 之后,我的共享庫也可以使用了。
我將項目的整個“安裝”文件夾復制到同事的Windows 8框中,Exe將運行,但無法加載.dll
我需要復制什么才能使dll在任何Windows機器上運行?
選擇其中之一,您應該選擇第三個選項:
這是Microsoft的C ++應用程序部署指南,有點腫,但值得一看。
您可以使用便捷的Dependency Walker工具找出您的應用程序所依賴的DLL。 通常,使用動態運行時構建時,它們至少是msvcr * .dll(Microsoft C運行時)和msvcp * .dll(Microsoft C ++運行時), 此處是更詳細的列表。 要部署Microsoft運行時,可以將正式的Visual C ++可再發行組件安裝程序(VCRedist_x86.exe)與應用程序一起提供。 或者,對於從2010年開始的Visual C ++,您可以將DLL放置在帶有可執行文件的目錄中,對於以前的版本,此過程要復雜一些 。
為了能夠在Windows XP上運行應用程序,請確保在項目屬性的“ General
選項卡上選擇Platform Toolset
具有XP支持的Platform Toolset
(但即使這樣,運行時也不會在SP2之前的系統上啟動)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.