Est-ce que quelqu'un peut répertorier les étapes spécifiques et détaillées pour configurer mc.exe (le compilateur de message) pour compiler un fichier .mc dans un fichier .rc en tant qu'étape de compilateur personnalisée dans VC++ 2010?
Je suis vraiment perdu sur la façon de faire cela.Configurer le compilateur de messages (mc.exe) en tant qu'étape de compilateur personnalisée dans VC++ 2010?
Répondre
Cliquez avec le bouton droit sur le projet, Ajouter + Nouvel élément, sélectionnez Fichier texte, nommez-le Blah.mc. Entrez ou collez les définitions. Faites un clic droit Blah.mc, Propriétés, étape de construction personnalisée:
- ligne de commande = mc $ (InputPath)
- Sorties = $ (InputName) .rc
Modifier votre fichier .rc, ajouter:
#include "Blah.rc"
Travaillé pour moi, devrait être proche.
Si vous souhaitez utiliser une règle de construction personnalisée, vous pouvez le faire
- Faites un clic droit de votre projet dans Visual Studio -> Personnaliser les règles de constructions
Cliquez sur « Nouvelle règle Fichier » et remplir le champs, j'utiliser ce fichier de règles pour MC.EXE
<VisualStudioToolFile Name="Message Table Build Rule" Version="8.00"> <Rules> <CustomBuildRule Name="Message Table Build Rule" DisplayName="Message Table Build Rule" CommandLine="[Location]\mc.exe [Unicode] [Verbose] [Inputs]" Outputs="Message Table Build Rule" FileExtensions="*.mc" ExecutionDescription="Message Table Build Rule" > <Properties> <BooleanProperty Name="Verbose" DisplayName="Verbose mode" Description="Foo." Switch="-v" /> <BooleanProperty Name="Unicode" DisplayName="Unicode mode" Description="Bar." Switch="-u" /> <StringProperty Name="Location" DisplayName="Location" Description="Baz." Switch="[value]" DefaultValue="C:\Bin\Psdk\Bin" /> </Properties> </CustomBuildRule> </Rules> </VisualStudioToolFile>
Hans presque l'avait Passant droit. Malheureusement, $ (InputPath) et $ (InputName) ne sont pas définis dans VS 2010. Au lieu de cela, créez votre fichier de message:
- Faites un clic droit sur votre Projet-> Ajouter-> Nouvel élément
- Sélectionnez « Texte Fichier (.txt), mais nommez-le en tant que fichier ".mc" (comme "messages.mc")
- Créez un fichier de ressources (par exemple, "resources.rc")
- Modifiez le fichier de ressources afin qu'il contienne une seule ligne:
#include "messages.rc"
Ce fichier sera généré par le compilateur de message. Maintenant, ajoutez une étape de génération personnalisée pour exécuter le compilateur de message:
- Cliquez avec le bouton droit sur messages.mc et sélectionnez Propriétés.
- Dans la boîte de dialogue Propriétés, configurez la configuration sur "Toutes les configurations".
- Sous "Propriétés de configuration", cliquez sur "Général".
- Assurez-vous que la propriété "Excluded From Build" est définie sur "No".
- Définissez la propriété "Type d'élément" sur "Outil de construction personnalisé" dans le menu déroulant et cliquez sur le bouton "Appliquer" pour que la propriété "Outil de construction personnalisé" s'affiche.
- Cliquez sur "Général" dans la propriété "Custom Build Tool".
Définissez la propriété "ligne de commande" à:
mc %(FullPath)
Définissez la propriété Description à quelque chose comme "Messages ... Compiler"
- Définir la propriété Sorties à:
%(Filename).rc;%(Filename).h;MSG0409.bin
The file MSG00409.bin is from having the following line in messages.mc:
LanguageNames = (English=0x409:MSG00409)
Il peut y avoir un fichier bin pour chaque langue que vous ajoutez à messages.mc. La bonne partie de les énumérer dans la sortie est qu'il sera supprimé lorsque le projet est nettoyé. La seule chose dont je ne suis pas sûr est la définition de la propriété "Execute Before" pour garantir que les messages.rc sont générés avant la compilation de resource.rc. Je n'ai pas eu à le définir, mais si vous trouvez que le compilateur de ressources essaye de s'exécuter avant le compilateur de message, alors vous devrez définir cette propriété. Il est désactivé pour le fichier "messages.mc", mais il peut être défini dans la propriété "Custom Build Step" du projet.
Si votre projet a déjà un fichier .rc, vous pouvez simplement ajouter '1 11" MSG00409.bin "' à –
quelle est l'utilisation du fichier .bin s'il est inclus? –
si vous avez des espaces dans FullPath, alors utilisez mc "% (FullPath)" –
Dans le cas custom compiler
n'est pas une exigence, mais plutôt comment faire construire des fichiers .rc à partir de MSBuild. Le WDK MessageCompiler task offre cette intégration avec MSBuild
<ItemGroup>
<MessageCompile Include="a.mc">
<GenerateBaselineResource>true</GenerateBaselineResource>
<BaselineResourcePath>c:\test\</BaselineResourcePath>
</MessageCompile>
</ItemGroup>
- 1. Erreur de compilateur interne VC++
- 2. Comment configurer les avertissements du compilateur dans Visual Studio 2010?
- 3. Essayer de configurer le compilateur iPhone-gcc
- 4. MSVC 2010 modèles problème compilateur
- 5. Pourquoi le compilateur VC++ 2010 plante-t-il lors de la compilation de code simple?
- 6. Messages d'erreur du compilateur rapide dans Eclipse
- 7. Delphi 2010 avec le compilateur précédent
- 8. Configuration de mex pour utiliser le compilateur Visual Studio 2010
- 9. Visual Studio 2005 - compilateur VC de C1001 sur Windows 7
- 10. Visual Studio 2010 Express Erreur de compilateur de liste STL
- 11. Existe-t-il une extension générique non-effacée pour le compilateur Java disponible en tant qu'extension de compilateur tierce?
- 12. mettre en surbrillance et filtrer (gcc) les messages du compilateur
- 13. Compilation conditionnelle selon la version du compilateur VC++
- 14. Version du compilateur VC pour la création d'extensions php
- 15. Compilateur: Traduction en assembleur
- 16. FlashDevelop (Flex/AS3) et les messages du compilateur localisés
- 17. MIT/Scheme en tant que compilateur simple sous Windows
- 18. Compilateur en Java
- 19. Compilateur Lua en JVM?
- 20. SDL avec Code :: Blocs et Visual Studio 2008 Compilateur VC++
- 21. Constructor avec des arguments de référence dans le compilateur g ++
- 22. Macro compilateur CUDA (nvcc)
- 23. Erreur de compilateur HLSL?
- 24. Meilleur compilateur GUI C++
- 25. erreurs de compilateur C++
- 26. problème de compilateur entreprise
- 27. énumérations d'emballage en utilisant le compilateur MSVC++
- 28. Modification du compilateur
- 29. Je veux dire au compilateur VC++ de compiler tout le code. Peut-il être fait?
- 30. arithmétique de pointeur et le compilateur C#
Prgress, mais avez-vous dire: ligne de commande = mc $ (InputName) .mc Sorties = $ (InputName) .rc; $ (InputName) .h Quoi qu'il en soit, cela donne l'erreur: mc: erreur: 0x2 en essayant d'ouvrir le fichier <.mc>. – EMS
OK, je commence à penser qu'il y a un plus gros problème. Je crée un TextFile.txt, puis configuré: Ligne de commande = echo "InputDir =" $ (InputDir) "InputName =" $ (InputName)> TextOut.txt Sorties = TextOut.txt TextOut.txt ne contient pas le $ (xxx) macro expansions. Ne semble pas juste. – EMS
Vous ne savez pas ce que vous faites. Assurez-vous que l'extension du nom de fichier est .mc, pas .txt –