4

VS-IDE會將//{{NO_DEPENDENCIES}}寫入資源頭文件。 此註釋實際上是一項功能,可防止(不必要的)重建包含資源標題的cpp文件。在預編譯頭文件中包含resource.h是個好主意嗎?

但是,像stated in the MSDN,這可能會導致「不良副作用」。

在我們的項目中,我們確實有stdafx.h中包含的resource.h用於預編譯。不幸的是,如果資源文件改變,預編譯的頭文件不會被重建...

如果NO_DEPENDENCIES被刪除,它將起作用(但如果通過IDE更改資源,它會再次寫入)。

有沒有辦法阻止IDE在每次更改文件時都將//{{NO_DEPENDENCIES}}寫入resource.h文件?

我認爲最好的辦法是從預編譯的頭文件中排除resource.h,並將它們重新包含在所需的.h和.cpp文件中。這樣,只有受影響的文件需要(手動!)重建,而不是所有文件(如果重新編譯pch,將發生這種情況)。

有何評論?

回答

1

我同意你自己的建議:resource.h文件可能不應該是預編譯頭文件的一部分。

需要注意的是,如果採用這個建議會導致過大的編譯時間,你可以嘗試使用兩個預編譯的頭文件:一方面當前的一個,以及你目前的一個resource.h在另一邊。後面的PCH將僅用於需要resource.h的文件。

不是太容易維護,但...

相關問題