4

VS-IDE écrit //{{NO_DEPENDENCIES}} dans les fichiers d'en-tête de ressources. Ce commentaire est en fait une fonctionnalité qui empêche la reconstruction (inutile) des fichiers cpp qui incluent l'en-tête de la ressource. Mais, comme stated in the MSDN, cela peut entraîner des «effets secondaires indésirables».L'inclusion de resource.h dans l'en-tête précompilé est-elle une bonne idée?

Dans notre projet, nous avons le resource.h inclus dans le stdafx.h pour la pré-compilation. Malheureusement l'en-tête précompilé n'est pas reconstruit, si le fichier de ressources change ...

Si le NO_DEPENDENCIES est supprimé, cela fonctionne (mais il est écrit à nouveau, si les ressources sont modifiées via IDE).

Existe-t-il un moyen d'empêcher l'IDE d'écrire //{{NO_DEPENDENCIES}} dans le fichier resource.h chaque fois que le fichier a été modifié?

Je pense que le meilleur moyen serait d'exclure le resource.h du fichier d'en-tête précompilé et de les inclure de nouveau dans les fichiers .h et .cpp nécessaires. De cette façon, seuls les fichiers affectés devraient être reconstruits (manuellement!) Et non tous les fichiers (ce qui arriverait si le pch était recompilé).

Un commentaire?

Répondre

1

Je suis d'accord avec votre propre suggestion: le fichier resource.h ne devrait probablement pas faire partie du fichier d'en-tête précompilé.

Notez que si l'application de cette suggestion conduit à trop grand temps de compilation, vous pouvez essayer d'utiliser deux fichiers d'en-tête précompilés: votre actuel d'un côté, et votre position actuelle un avecresource.h de l'autre côté. Ce dernier PCH ne serait utilisé que par les fichiers qui ont besoin de resource.h.

Proable pas toujours facile à entretenir, cependant ...

Questions connexes