c++;条件包含指令? 我现在在C++项目中使用条件包含指令来解决这个问题。我想征求社区的意见,看看我是否真的被允许这样做

c++;条件包含指令? 我现在在C++项目中使用条件包含指令来解决这个问题。我想征求社区的意见,看看我是否真的被允许这样做,c++,namespaces,conditional-compilation,C++,Namespaces,Conditional Compilation,我的伪代码如下所示: BOOL myLogic(){ #ifdef GlobalVar1 if(MyNameSpace::CheckSomething()) //Compiler complains that 'MyNameSpace' is not a class or namespace name { MyClass myCls; myCls.doSomething(); } else { ErrorLog(E

我的伪代码如下所示:

BOOL myLogic(){

  #ifdef GlobalVar1
    if(MyNameSpace::CheckSomething()) //Compiler complains that 'MyNameSpace' is not a class or namespace name
    {
      MyClass myCls;
      myCls.doSomething();
    }
    else
    {
      ErrorLog(ERROR_CHECKINGSOMETHING); //Compiler complains that ERROR_CHECKINGSOMETHING as undeclared idenifier
    }
  #endif

  #ifdef GlobalVar2
    ...
  #endif
}
我声明了大约20个条件包含,在定义了我选择的GlobalVar之后,我尝试编译我的解决方案,我在注释中报告了上述两个错误


我希望通过以上述方式使用#ifdef和#endif来找出我是否做错了什么。当我试图测试一位SOF成员在我之前发布的问题中提出的建议时:。谢谢大家!

我意识到该错误是由于某些标题未正确包含而导致的

我已经包含了#ifdef includes指令来屏蔽头文件,因为以前包含的一些必要头文件现在不再包含,因为没有满足包含条件


我已经通过在基类中添加必要的头文件解决了这个问题。

您是否真的包含了声明了
MyNameSpace::CheckSomething
的头文件?这篇文章中没有足够的代码来确定到底出了什么问题。发布一篇完整的文章,展示了您遇到的问题。我意识到错误是由于某些标题未正确包含而导致的。我已经包含了#ifdef includes指令来屏蔽头文件,因为以前包含的一些必要头文件现在不再包含,因为没有满足包含条件。我通过在基类中添加必要的头文件解决了这个问题。谢谢你们的建议!