代码之家  ›  专栏  ›  技术社区  ›  Steven Keith

有没有办法在每个源文件中自动复制一个#define

  •  2
  • Steven Keith  · 技术社区  · 16 年前

    我想在我的Visual C++ 2005解决方案中的每个源文件中出现以下内容:

      #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
      #define new DEBUG_NEW
    

    有没有一种不用手动复制的方法?编译器选项?

    6 回复  |  直到 9 年前
        1
  •  5
  •   Martin B    16 年前

    命令行选项 /D

    编辑:如果失败了 /FI option (“强制包含”)应该允许你做你想做的事。引用 MSDN documentation :

    你可以把你的 #define 强制包含文件中的。

        2
  •  4
  •   CB Bailey    16 年前

    我建议不要用这个 #define . 重新定义 new 不工作。如果你“强迫”这个 #定义 在手动创建文件之前 #include 新的

    如果你要重新定义

        3
  •  2
  •   sharptooth    16 年前

    你可以插进去 #define

        4
  •  1
  •   Konrad Rudolph    16 年前

    编译器选项?

    define 在项目属性中的。这些 定义 将在每个源文件中显示。

        5
  •  1
  •   JXG Jasmynn Flores    15 年前

    你可以把 #define 他变成了一个 h 文件,但不放 #ifndef 小时 文件。那么 #include 每个源文件中的文件。

    我不赞成重新定义 new ,顺便说一句。

        6
  •  0
  •   uuu777    8 年前

    #ifdef MYDEBUG
    void* operator new(std::size_t size) { <your code here> }
    void operator delete(void* p) { <your code here> }
    #endif