C++ 标准库仍然需要额外的运行库库?(vcruntime140_1.dll)

C++ 标准库仍然需要额外的运行库库?(vcruntime140_1.dll),c++,winapi,dll,C++,Winapi,Dll,我使用标准头文件和DirectX创建了一个Windowsx64程序(见下文)。我有点期待用户不需要额外的运行库库。但是我从一些人那里得到的反馈是,vcruntime140_1.dll丢失了。这是一个简单的解决方案,但如何确保用户不需要下载DirectX之外的其他运行库库 #include <Windows.h> #include <d2d1.h> #include <dwrite.h> #include <wincodec.h> #include

我使用标准头文件和DirectX创建了一个Windowsx64程序(见下文)。我有点期待用户不需要额外的运行库库。但是我从一些人那里得到的反馈是,
vcruntime140_1.dll
丢失了。这是一个简单的解决方案,但如何确保用户不需要下载DirectX之外的其他运行库库

#include <Windows.h> #include <d2d1.h> #include <dwrite.h> #include <wincodec.h> #include <TlHelp32.h> #include <iostream> #include <chrono> #include <string> #include <cstring> #include <tchar.h> #include <vector> #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括

在Visual C++中开发的Windows 10下运行程序需要相关的运行时重新分配表:.< /P> 微软已经决定将通用C运行时(CRT)库包括在标准Windows 10安装中,这些库通过通用Windows更新机制保持最新。VisualC++重新分配依赖于这些UCRT,但需要单独安装。安装VisualC++运行库也将验证最新的UCRT是否安装在用户没有定期更新Windows的情况下。有关更多详细信息,请访问


另一个选项是使用静态链接将库包含在可执行文件中。该计划将变得更大,并应注意它们被多次包括在内。此外,Microsoft对dll的任何修复都需要重新编译程序。

似乎很简单。在VM上加载新安装的Windows。复制你的exe。运行它,完成依赖项,重新运行,直到它按预期工作。请记下您添加的依赖项,并将它们与exe一起提供。此外,我希望您使用Microsoft的安装程序来实现msvcp依赖项;而不是从您的系统中复制32或其他内容。:)“我如何确保用户不需要下载额外的运行库库”-简单,不依赖它们。如果你正在编写C++代码,你就依赖C++实现的支持库。C也是如此。编写不依赖于任何运行库的代码是可能的,但非常重要。如果visual studio是您的开发平台,那么相应的vcredist安装程序的存在是有原因的;这将是一个大问题。如果你的程序是用VS2015U3构建的,那么相应的VSReDIST安装程序模块应该包含在你的安装程序中,并按照需要运行。此外,它们可以从MS下载给开发人员,以作为其装运程序的一部分。考虑静态连接,而不是(<代码> /MT ,<代码> /MTD < /代码>)。如果你编写了一个C程序,你就不需要部署C++运行库了。如果部署C++运行库,还必须生成新的部署以从更新中受益。您不能让系统使用更新版本的支持库,并在未验证您的程序是否在更新的环境下运行的情况下利用它们。无论动态链接的好处被重复了多少次,它都不会改变事实:无论哪种方式,您都必须发布程序的更新版本。