gpt4 book ai didi

c++ - Visual Studio 10中使用/MT或/MD构建dll

转载 作者:行者123 更新时间:2023-11-30 04:26:05 24 4
gpt4 key购买 nike

我正在构建一个将由 C 和 C++ 应用程序使用的 C++ dll。我知道/MT 会导致静态库 (LIBCPMT.LIB) 代码被转储到我的 dll 中,因此没有依赖性。/MD 将链接到导入库并将依赖于 C++ 运行时 (MSVCP100.dll)。

我的疑问:

  1. 在/MD 选项中,我是否必须确保在 Windows 操作系统上存在正确版本的 C++ 运行时 dll,即我在开发过程中链接到的导入库?

  2. 我是否需要关心使用我的 dll 的应用程序链接到哪个 C/C++ 运行时?我想使用 C++11 功能,但想确保旧的 C++ 应用程序仍然可以使用我的 dll。

  3. 我计划现在使用 VS 2012 RC,我认为他们的 C++ 运行时库已更新。代码将在哪个版本的 Windows 上执行,或者使用我的 dll 的应用程序使用了哪些库,是否会再次存在任何依赖性?

最佳答案

  1. 是的,相关的运行时库 DLL 必须存在

  2. 是的,客户端代码通常需要使用相同的运行时。但是,您可以通过仅向客户端提供 C 样式接口(interface)或 COM 接口(interface)来解决这个问题。例如,没有 std::string 或其他包含运行时分配内容的数据。

  3. 是的,您将仅限于 supported target platforms适用于 VS 2012 - Windows Vista 及更高版本。

关于c++ - Visual Studio 10中使用/MT或/MD构建dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11769711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com