代码之家  ›  专栏  ›  技术社区  ›  fmuecke

包括资源。h在预编译头中是个好主意吗?

  •  4
  • fmuecke  · 技术社区  · 15 年前

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

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

    在我们的项目中,我们有 resource.h 包括在 stdafx.h 用于预编译。不幸的是,如果资源文件发生更改,则预编译头不会重新生成。。。

    如果删除了NO_依赖项,它就会工作(但如果通过IDE更改了资源,它会被再次写入)。

    有没有办法防止IDE写入 //{{NO_dependentials}} 资源H 每次文件被更改时都要使用文件吗?

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

    有什么评论吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Xavier Nodet    15 年前

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

    请注意,如果应用此建议导致编译时间过长,可以尝试使用两个预编译头文件:当前头文件位于一侧,当前头文件位于一侧 具有 资源H 在另一边。后一个PCH将仅由需要的文件使用 资源H .

    当然不太容易维护,不过。。。