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

Sco*_*ham 3 c++ pragma dynamic-linking static-linking visual-studio

在头文件中,我想#pragma comment lib根据包含头文件和正在构建的项目是 dll 还是 staticLib 项目来选择正确的 lib 文件。

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

我已经看到_DLL可以用来查看这里使用的是静态还是动态 CRT:https : //msdn.microsoft.com/en-us/library/b0084kay.aspx?f=255&MSPPError=-2147217396

Joh*_*man 5

此功能没有预定义的宏。MSDN 涵盖了这些

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

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