[英]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.