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,就会发生这种情况)。
有任何意见吗?
答案 0 :(得分:1)
我同意您自己的建议:resource.h
文件可能不应该是预编译头文件的一部分。
请注意,如果应用此建议会导致编译时间过长,您可以尝试使用两个预编译的头文件:一个是当前的一个,另一个是 resource.h
另一方面。后一个PCH仅由需要resource.h
的文件使用。
虽然可能不太容易维护......