如何使CRT {static,DLL}的静态库运行时需求因项目而异?

时间:2014-05-03 14:19:27

标签: visual-studio winapi

我有一个用C ++编写的.lib,我以两种不同的方式使用

  1. 链接到不依赖于动态加载的CRT的.EXE
  2. 必须使用动态加载的CRT的托管C ++ DLL
  3. ...如果我指定lib的运行时库要求是DLL,#1很高兴,但#2不是。如果我指定lib的运行时库要求是静态的,那么#1会变得不快乐而#2很高兴

    我该如何解决这个问题?我真的 而不是有两个项目/解决方案吗?

1 个答案:

答案 0 :(得分:1)

一种选择是为您的解决方案添加新配置。

目前,您很可能会有名为DebugRelease的配置。

确保两个配置都使用动态加载的CRT。

Debug配置复制为Debug Static,将Release复制为Release Static。将Debug重命名为Debug Dynamic,将Release重命名为Release Dynamic

更改两个静态配置以使用静态CRT。

在构建项目时,您将获得可以与托管DLL和EXE一起使用的库的单独Release DynamicRelease Static版本。