如何判断当前项目是dll还是静态lib?

时间:2016-01-27 10:24:02

标签: c++ visual-studio static-linking dynamic-linking pragma

在标题中我想#pragma comment lib到正确的lib文件,具体取决于包含标题和正在构建的项目是dll还是staticLib项目。

是否有任何预定义的预处理器变量可以#if on来解决它?

我已经看到_DLL可用于查看此处是否使用静态或动态CRT:https://msdn.microsoft.com/en-us/library/b0084kay.aspx?f=255&MSPPError=-2147217396

1 个答案:

答案 0 :(得分:4)

此功能没有预定义的宏。 The MSDN covers these

但是,在创建这些类型的新项目时,Visual-studio会将 _LIB(静态库)或_USRDLL(动态库)宏附加到项目的构建设置中。

您可以合理地假设,鉴于项目是使用当前的visual-studio工作流程创建的,这些将被定义 - 但是,请注意,这可能会在将来发生变化,如果用户使用过,可能不会出现一种非标准的方法来创建项目。