不同项目中不同文件的预处理器指令(常量)
Posted
技术标签:
【中文标题】不同项目中不同文件的预处理器指令(常量)【英文标题】:preprocessor directives (constants) for different files in different projects 【发布时间】:2011-11-15 18:26:02 【问题描述】:Visual Studio 2010 的不同项目中的不同文件是否可以有一些预处理器指令常量?这是我正在尝试做的一个示例:
在项目“A”的文件“1”中,我定义:TIMEDISPLAYING
#define TIMEDISPLAYING
在项目“B”的文件“2”中,我检查了 TIMEDISPLAYING:
#if TIMEDISPLAYING
//do something
#else
//do something else
#endif
我知道我可以在项目文件中添加我的自定义常量。解决方案文件中是否有可以添加类似内容的地方?或者导入我所有自定义常量的其他类型的文件?
我目前在一个类中定义了布尔常量,但我希望我的代码基于常量编译,而 DEBUG 对我来说还不够。如果定义了 DEBUG,我的下一个解决方案是添加我的布尔常量:
#if DEBUG
protected const bool ISTIMEDISPLAYING = 1 == 1;
protected const bool ISDATARANDOM = 1 == 0;
protected const bool IS_AUTO_LOADING_CHAMP_VENDOR = 1 == 1;
protected const bool IS_TESTING_PO = 1 == 0;
#endif
我在这里的最后一个解决方案有什么替代解决方案吗?非常感谢任何帮助。
【问题讨论】:
【参考方案1】:您可以在 Visual Studio 中项目属性的“生成”选项卡上设置条件编译符号,而不是在代码中声明它们。不同的构建配置可以分配不同的条件编译符号,您可以根据需要创建任意数量的构建配置。这可能更容易管理,您不必担心将它们添加到哪个源文件,因为它们存储在项目本身中。
如果您希望包含或排除基于条件编译符号的整个方法,您可能还会发现 Conditional attribute 很有用。
【讨论】:
我仍然不明白它如何适用于多个项目。我确实知道条件属性,但我不知道如何为所有项目制作它,而不必在每个项目上进行设置? 我知道已经快一年了,但事实证明这非常完美。谢谢你的建议。一开始我不太明白,但在过去的一个月里,我一直在努力花一些时间阅读这方面的文档,我只是为我正在创建的一些单元测试实现了这个。它非常完美,所以当我想使用某条数据运行我的单元测试时,我只需更改解决方案的配置类型,一切都运行完美,而无需做太多的工作。非常感谢。以上是关于不同项目中不同文件的预处理器指令(常量)的主要内容,如果未能解决你的问题,请参考以下文章