Microsoft Docs

问题描述 投票:0回答:1
:

msvcp140.dll
msvcp140_1.dll
msvcp140_2.dll

When you build a release version of your project, one of the basic C run-time libraries (libcmt.lib, msvcmrt.lib, msvcrt.lib) is linked by default, depending on the compiler option you choose (multithreaded, DLL,

msvcp140_1.dll我试图将一个C库导入到Visual Studio项目中。该库附带以下文件。msvcp140_2.dll我知道这些是微软C语言运行时的DLL文件。但我想知道更多关于这些文件的用途。我想知道我需要哪些二进制文件,以及包含这些文件有什么后果。

这些文件的目的是什么?
c msvcrt
1个回答
3
投票

p C++ Standard Library我正试图将一个C库导入到Visual Studio项目中。该库附带以下文件: msvcp140.dll msvcp140_1.dll msvcp140_2.dll 我知道这些是微软的C运行时 ...这些文件实际上是C++标准库的实现(参见 在他们的名字)。) 从

关于

CRT库功能clr)。) 如果你包含了其中的一个 C++标准库头文件 在你的代码中,Visual C++会在编译时自动链接一个C++标准库。例如,在编译时,Visual C++会自动链接一个C++标准库。

#include <ios>

为了二进制兼容性,一个导入库可以指定多个DLL文件。版本更新可能会引入点库,即引入新库功能的独立DLL。例如,Visual Studio 2017 15.6版引入了msvcp140_1.dll,以支持额外的标准库功能,而不破坏msvcp140.dll支持的ABI。Visual Studio 2017 15.6版本的工具集中包含的msvcprt.lib导入库支持这两个DLL,该版本的vcredist会安装这两个DLL。点库一旦出厂,就有固定的ABI,绝不会对后来的点库产生依赖。

由于微软的C++标准库是开源的,你可以很容易地查到那些附加的功能是什么,例如。stl/CMakeLists.txt 甚至描述了这些文件。

# msvcp140_1.dll (the memory_resource satellite)

# msvcp140_2.dll (the special math satellite)

然而 源文件名 本身已经是描述性的。

© www.soinside.com 2019 - 2024. All rights reserved.