【问题标题】:Is including resource.h in precompiled header a good idea?在预编译头文件中包含 resource.h 是个好主意吗?
【发布时间】:2009-10-22 14:27:07
【问题描述】:

VS-IDE 会将//{{NO_DEPENDENCIES}} 写入资源头文件。 此注释实际上是一项功能,可防止(不必要的)重建包含资源头的 cpp 文件。

但是,就像stated in the MSDN,这可能会导致“不良副作用”。

在我们的项目中,我们确实将resource.h 包含在stdafx.h 中以进行预编译。不幸的是,如果资源文件发生变化,预编译的头文件不会重建......

如果 NO_DEPENDENCIES 被删除,它可以工作(但如果通过 IDE 更改资源,它会再次写入)。

有没有办法防止 IDE 在每次更改文件时都将//{{NO_DEPENDENCIES}} 写入resource.h 文件?

我认为最好的方法是从预编译的头文件中排除 resource.h 并将它们重新包含在所需的 .h 和 .cpp 文件中。这样,只有受影响的文件需要(手动!)重建,而不是所有文件(如果重新编译 pch,就会发生这种情况)。

有没有cmets?

【问题讨论】:

    标签: visual-studio visual-c++ resources header-files precompiled-headers


    【解决方案1】:

    我同意你自己的建议:resource.h 文件可能不应该是预编译头文件的一部分。

    请注意,如果应用此建议导致编译时间过长,您可以尝试使用两个预编译的头文件:一侧是您当前的头文件,另一侧是您当前的 with resource.h另一边。后一种 PCH 将仅由需要 resource.h 的文件使用。

    可能不太容易维护,但...

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2011-06-13
      相关资源
      最近更新 更多