我有一个使用vc.mak makefile的VS2012 C ++项目来构建解决方案。我构建了一个或多或少相同的.exe和.dll(exe有一个main()是唯一的区别)。
我需要做些什么才能在多个版本的Windows上运行这两段代码?我正在使用Windows 8.1 Pro,我当然能够运行我的exe并使用dll罚款。我构建了一个新的Win8.1 Pro VM,我发现尝试运行.exe,它丢失了MSVCR110.dll文件,所以我将其复制并运行。我的共享库也可以在此之后使用。
我将项目的整个“install”文件夹复制到我的同事windows 8框中,然后exe将运行,但我无法加载.dll
我需要复制什么才能让我的dll在任何Windows机器上运行?
答案 0 :(得分:1)
选择其中一个,您应该更喜欢第三个选项:
答案 1 :(得分:1)
Here是来自Microsoft的C ++应用程序部署指南,有点臃肿但值得一看。
您可以使用方便的Dependency Walker工具找到您的应用程序所依赖的DLL。通常在使用动态运行时构建时,它们至少为msvcr * .dll - Microsoft C运行时和msvcp * .dll - Microsoft C ++运行时,here是更详细的列表。要部署Microsoft运行时,您可以随应用程序一起发布官方Visual C ++ Redistributable安装程序(VCRedist_x86.exe)。对于从2010年开始的Visual C ++,您可以将DLL放在具有可执行文件的目录中,对于先前版本,该过程为a bit more complicated。
为了能够在Windows XP上运行应用程序,请确保在项目属性的Platform Toolset
选项卡上选择General
并支持XP(但即使这样,运行时也不会在SP2之前的系统上启动)。 / p>