C++ 使VisualStudio项目可移植,这是一个问题

C++ 使VisualStudio项目可移植,这是一个问题,c++,visual-studio,build,portable-executable,C++,Visual Studio,Build,Portable Executable,我有个问题 无论我在哪里运行一个C++程序,都是在另一台计算机上的Visual Studio 2017社区版中构建的,它表示三个DLL丢失:VCCRIST、MSVCP140D和UCRTBASED.DLL。我找到的唯一解决办法是在另一台计算机上安装visual Studio社区 我的问题是:如何创建一个不需要在另一台计算机上不断使用这些DLL的程序?我如何解决我这方面的问题 感谢您抽出时间和提供的任何帮助 亲切问候,, John您要处理的问题与您分发应用程序的方式以及如何链接它所依赖的库有关 应用

我有个问题

无论我在哪里运行一个C++程序,都是在另一台计算机上的Visual Studio 2017社区版中构建的,它表示三个DLL丢失:VCCRIST、MSVCP140D和UCRTBASED.DLL。我找到的唯一解决办法是在另一台计算机上安装visual Studio社区

我的问题是:如何创建一个不需要在另一台计算机上不断使用这些DLL的程序?我如何解决我这方面的问题

感谢您抽出时间和提供的任何帮助

亲切问候,,
John

您要处理的问题与您分发应用程序的方式以及如何链接它所依赖的库有关

应用程序链接到动态提到的DLL。这意味着您需要将这些库作为单独的文件包含在应用程序中,或者让用户在目标计算机上单独安装它们

但是,可以通过静态链接将它们编译到应用程序中。Microsoft不鼓励这种做法,原因可能与总体系统性能和内存管理有关


有关此区别的更多信息,请查看此区别,因为它特别与Windows应用程序开发相关。

MSVCP140D.dll和UCRTBASE.dll是调试版本。而且,您绝对不应该重新发布应用程序的调试版本,而应该发布新版本。但即使发布版本,在运行应用程序之前,您通常需要部署微软VisualC++重新分配版本的VisualStudio。