vs 2015 C 重新分布可在单个DLL中

VS 2015 C++ Redistributable not in a single DLL?

本文关键字:单个 DLL 分布 2015 新分布 vs      更新时间:2023-10-16

假设我将以下C 代码构建为HelloWorld.exe,使用Visual Studio 2015,定位版本,平台X64。

#include <iostream>
int main()
{
    std::cout << "Hello world!!" << std::endl;
    return 0;
}

几年前,我可以与HellowWorld.exe一起复制msvcp###.dll(或msvcr###.dll)并具有可运行的程序。

我刚刚安装了VS2015,现在看来我不能只带上msvcp140.dll。我的System32文件夹中似乎有70〜ISH api-ms-win-.....dll文件。

我知道最好的策略是让他们安装可重新分配的问题...但是对于无法复制.dll曾经是可行的替代方案的情况。仍然是这样吗?我错过了一些简单的东西吗?

总结:我以为我可以复制msvcp140.dll并使其起作用,但事实并非如此。我错了吗?

注意:我在允许重新分配的内容列表中没有看到api-ms-....dll文件。还是理解这是2015年运行时的一部分,随之而来的是?

而不是处理Redistibutables,我倾向于静态地链接运行时(/MT和/MTD编译器选项)。

它确实会导致更大的文件大小,但比远处的DLL小。

您可以向安装程序分发VC 2015。

https://www.microsoft.com/en-us/download/details.aspx?id=48145

如果不是一个选项,请静态链接。

您还可以运行取决于确定您需要的其他DLL。您可以忽略API-MS*.dll的:依赖关系Walker:缺少DLL