在Visual C ++中通过命令选项将项目中的头文件包含到每个.h文件中?

时间:2014-04-30 01:54:23

标签: c++ visual-studio-2012 include c-preprocessor preprocessor-directive

我有一个非常庞大的项目。

我的每个.h文件都需要包含一个特定文件errorHandler.h。但我不想这样做:

#include "errorHanlder.h"

在每个人的顶部。

此外,将来我将很少实现errorHandler,因此我希望能够(快速)errorHandler.h更改为winErrorHandler.hwinErrorHandler2.h,{ {1}}或类似的东西。

是否有可能使用Visual C ++ 2012自动包含该文件

我的意思是自动定义:

unixErrorHandler.h 当我写在那里,例如Project->Configuration Preporties->C/C++->Preprocessor->PreprocessorDefinitions与将myDef放在每个项目文件中的结果相同。

所以以同样的方式,我想以某种方式#define myDef放在每个项目文件中。

2 个答案:

答案 0 :(得分:2)

如果您正在使用预编译的头部功能,那么将常见的#include放入stdafx.h将完成与将其放入整个项目中的每个h文件相同的事情。 stdafx.h在任何其他标题之前处理。

答案 1 :(得分:2)

  

是否有可能使用Visual C ++ 2012自动包含该文件?

您可以使用/FI强制包含未包含在项目源文件中的文件。我在将库移植到Windows RT和Windows Phone时使用它。例如:

/FI SDKDDKVer.h /FI winapifamily.h

实际上是:

#include <SDKDDKVer.h>
#include <winapifamily.h>

以下是我为OpenSSL提供的一个补丁,它强制某些Windows Phone和Windows RT包含。

该选项有一个属性页面。你可以在Project->Configuration Preporties->C/C++->Advanced->Force Include File找到它(感谢PolGraphic和Retired Ninja)。

cl.exe的选项列表位于Compiler Options Listed Alphabetically/I将允许您指定标头路径,例如GCC的-I


enter image description here