9
votes

Ai-je besoin d'Afxres.h, si je n'utilise pas MFC? Comment puis-je le supprimer du script de .rc?

Je ne connais pas les scripts rc.

Je veux inclure la version du produit, la version de fichier, etc. Metadata dans une DLL que je bâtiment. J'utilise un fichier .rc pour le faire. La construction est motivée. Je suis avec un exemple de SCRPIT .RC J'ai trouvé.

Le fichier de modèle .RC inclut AFXRES.H , mais je ne pense pas avoir besoin de cela. Mais si je viens de le supprimer, je reçois un tas d'erreurs de compilation.

Que ressemble un script de base et non MFC RC? Puis-je supprimer toutes les choses comme ceci: xxx


0 commentaires

3 Réponses :


2
votes

Ma réponse:
Non, je n'ai pas besoin de toute cette merde. Voici un script RC qui fonctionne pour VersionInfo.

$(WindowsSDK)\bin\RC.exe /FoProjectName.res ProjectName.rc


1 commentaires

Vous pouvez éditer le fichier de ressources tout ce que vous aimez. L'avantage de laisser les lignes que vous supprimez seuls est de pouvoir le modifier automatiquement à l'aide de l'éditeur de ressources. Si vous regardez de près, vous verrez que la deuxième référence à AFXRES.H reconstruit le premier lorsque le fichier est régénéré. Par conséquent, remplacez les deux références à AFXRES.H avec Windows.h (puisque vous n'utilisez pas MFC) et que le problème sera résolu.



9
votes

J'ai eu un problème similaire lorsque vous essayez de compiler sans MFC. La solution de Cheeso ne fonctionnerait pas de manière adéquate pour moi.

Tout a compilé d'accord et je n'ai vu aucune erreur / avertissements pendant la construction. L'icône définie dans mon fichier de ressources a été diffusée correctement dans «Explorateur Windows». Cependant, les données de version n'étaient pas disponibles. (Qui peut être vu lorsque vous cliquez sur le bouton droit de la souris sur les propriétés exécutables et de sélection. Dans ce cas, il n'y avait pas d'onglet "Version" présente.)

Pour le faire fonctionner, je devais ajouter les éléments suivants incluent en haut du fichier .rc: xxx

avec ce changement, l'onglet Version apparaîtrait dans les propriétés de l'exécutable. En outre, la classe .NET System.Diagnostics.FileVersionInfo est désormais en mesure d'obtenir les informations de version, tandis que cela ne fonctionnerait pas avant.

parlatation parlatation "STDAFX.H" (Windows.h ". Je ne sais pas pourquoi Windows.h est requis, mais il semble faire la différence dans mon cas.

EDIT: Ajout d'informations supplémentaires spécifiques, en réponse à Cheeso.


2 commentaires

Dites-vous que le RC.EXE n'a pas réussi à compiler le script RC, sans que cela incluait le fichier? Quel symbole n'a pas été défini? Comment a-t-il échoué?


Cela devrait être la réponse acceptée, travailler comme un charme. Merci!



0
votes

J'ai la même erreur lors de la mise à niveau du projet RBTray dans VS2019.

Après avoir changé AFXRES.H à winres.h (comme dans le projet VS2019 WinApp Exemple de projet .rc fichier), la compilation a réussi.


0 commentaires