Kann jeder die spezifischen und detaillierten Schritte auflisten, um mc.exe (den Nachrichtencompiler) zu konfigurieren, um eine .mc-Datei in einer RC-Datei als benutzerdefinierten Compilerschritt in VC++ 2010 zu kompilieren?
Ich bin wirklich verloren, wie man das macht.Konfigurieren Sie den Nachrichtencompiler (MC.exe) als einen benutzerdefinierten Compilerschritt in VC++ 2010?
Antwort
Klicken Sie mit der rechten Maustaste auf das Projekt, Hinzufügen + Neues Element, wählen Sie Textdatei, nennen Sie es Blah.mc. Geben Sie die Definitionen ein oder fügen Sie sie ein. Rechtsklicken Sie Blah.mc, Eigenschaften, Maßarbeit Schritt:
- Command line = mc $ (InputPath)
- Ausgänge = $ (Inputname) .rc
Bearbeiten Sie Ihre RC-Datei, hinzufügen:
#include "Blah.rc"
Arbeitete für mich, sollte in der Nähe sein.
Wenn Sie eine benutzerdefinierte Erstellungsregel verwenden möchten, können Sie dies tun
- Rechts Ihr Projekt in Visual Studio klicken -> Benutzerdefinierte Regeln beim Aufbau
Klicken Sie auf „Neue Regel File“ und füllen Sie die Felder, verwende ich diese Regel-Datei für 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 Passant es fast Recht hatte. Leider $ (InputPath) und $ (Inputname) nicht 2010. Statt in VS definiert, Ihre Nachrichtendatei erstellen:
- Rechtsklick auf Ihre Ausbau-> Add-> Neues Element
- Wählen Sie „Text Datei (.txt), aber benennen Sie sie als ".mc" Datei (wie "messages.mc")
- Erstellen Sie eine Ressourcendatei (sagen wir "resources.rc")
- Bearbeiten Sie die Ressourcendatei so, dass sie enthält nur eine Zeile:
#include "messages.rc"
Diese Datei wird vom Nachrichtencompiler generiert. Fügen Sie jetzt einen benutzerdefinierten Erstellungsschritt hinzu, um den Nachrichtencompiler auszuführen:
- Klicken Sie mit der rechten Maustaste auf messages.mc und wählen Sie Eigenschaften.
- Setzen Sie im Dialogfeld Eigenschaften die Konfiguration auf "Alle Konfigurationen".
- Klicken Sie unter "Konfigurationseigenschaften" auf "Allgemein".
- Stellen Sie sicher, dass die Eigenschaft "Excluded from Build" auf "No" gesetzt ist.
- Setzen Sie die "Elementtyp" -Eigenschaft auf "Custom Build Tool" aus dem Dropdown-Menü und klicken Sie auf die Schaltfläche "Übernehmen", so dass die "Custom Build Tool" -Eigenschaft erscheint.
- Klicken Sie auf "Allgemein" unter der "Custom Build Tool" -Eigenschaft.
die "Command Line" Set-Eigenschaft auf:
mc %(FullPath)
die Beschreibung der Unterkunft um so etwas wie Set "Kompilieren Nachrichten ..."
- Set Ausgänge Eigenschaft auf:
%(Filename).rc;%(Filename).h;MSG0409.bin
The file MSG00409.bin is from having the following line in messages.mc:
LanguageNames = (English=0x409:MSG00409)
Für jede Sprache, die Sie zu messages.mc hinzufügen, kann eine Bin-Datei vorhanden sein. Der schöne Teil der Auflistung in der Ausgabe ist, dass sie gelöscht wird, wenn das Projekt bereinigt wird.
Das einzige, was ich bin nicht sicher, über setzt das „Execute Vor“ Eigenschaft zu gewährleisten messages.rc erzeugt wird, bevor resource.rc kompiliert wird. Ich musste es nicht festlegen, aber wenn Sie feststellen, dass der Ressourcencompiler versucht, vor dem Nachrichtencompiler auszuführen, müssen Sie diese Eigenschaft festlegen. Es ist für die Datei "messages.mc" deaktiviert, kann jedoch in der Eigenschaft "Eigener Buildschritt" des Projekts festgelegt werden.
Wenn Ihr Projekt bereits eine RC-Datei hat, können Sie einfach '1 11„MSG00409.bin“add' es –
was die Verwendung der .bin-Datei sollte es enthält irgendwie sein? –
wenn Sie Räume in FullPath haben, dann verwenden Sie mc "% (FullPath)" –
Bei custom compiler
ist keine Voraussetzung, aber mehr, wie es Dateien von MSBuild bauen .rc zu machen. Die WDK MessageCompiler task bietet diese Integration mit MSBuild
<ItemGroup>
<MessageCompile Include="a.mc">
<GenerateBaselineResource>true</GenerateBaselineResource>
<BaselineResourcePath>c:\test\</BaselineResourcePath>
</MessageCompile>
</ItemGroup>
- 1. Verwenden Sie VC++ 2010 Laufzeitbibliotheken in VC++ 2008 Projekt
- 2. Wer kann den mc.exe (Message Compiler) verwenden?
- 3. Wie Downgrade von VC++ 2010-Projekt auf VC++ 2008?
- 4. Visual C++ 2010 Kompatibilität mit VC 2008
- 5. Konfigurieren Sie 'Save on verlieren Fokus' in Visual Studio 2010
- 6. Was bedeutet "Join" im Thread (VC++ 2010)?
- 7. Warum ermöglicht VC++ 2010 dies zu kompilieren?
- 8. Compiler Fehler beim Übergeben eines Arrays als ein Param in VC++ 2010
- 9. Deaktivierung von C++ 0x-Funktionen in VC 2010?
- 10. Problem mit "beweglichen Nur-Typ" in VC++ 2010
- 11. Erstellen Sie einen Ausdruck in ACCESS 2010
- 12. Zugriff auf den 2010-Eintrag als Parameter
- 13. Können Sie die Schriftart für den Abfrageeditor in Visual Studio 2008 oder 2010 konfigurieren?
- 14. So konfigurieren Sie den HQL Editor in Hibernate Tools in Eclipse mit einer benutzerdefinierten NamingStrategy
- 15. Konfigurieren Sie Tomcat als Dienst (keine catalina.bat)
- 16. Seltsames Verhalten mit den Hotkeys in VC++
- 17. Wie bekomme ich einen String mit einem Muster von std :: regex in VC++ 2010
- 18. Erstellen Sie einen neuen Verbindungspunkt in VC++ 6?
- 19. Web Deploy - Konfigurieren der Stammbereitstellung als Standard
- 20. "In Ausgabeverzeichnis kopieren" in VC++
- 21. Konfigurieren Sie pom.xml für den Ruhezustand 3.6
- 22. Konfigurieren Sie den Proxy mit Publish-AzureWebsiteProject
- 23. Konstruktor Eingabefehler in VC++
- 24. VBA - 2010 - So invertieren Sie einen Filter
- 25. So legen Sie einen benutzerdefinierten Startwert für den Pseudozufallszahlengenerator fest
- 26. So konfigurieren Sie einen zusätzlichen Migrationsordner
- 27. VC++ 2010 will Boost Libararies verknüpfen ich nicht einmal
- 28. Sharepoint 2010 Datenbindung mit benutzerdefinierten Listenspalten
- 29. So konfigurieren Sie den Titel des Alarmdialogs
- 30. ein Arrayliteral in C Casting ++ auf einen Typ (VC++)
Prgress, aber haben Sie vielleicht: Befehlszeile mc $ (Inputname) .mc Ausgänge = $ (Inputname) RC =; $ (Inputname) .h Unabhängig davon, gibt dies den Fehler: mc: Fehler: 0x2 versucht Datei <.mc> zu öffnen. – EMS
OK, ich fange an zu denken, dass es ein größeres Problem gibt. Ich mache eine TextFile.txt, dann konfiguriert: Befehlszeile = echo "InputDir =" $ (InputDir) "InputName =" $ (InputName)> TextOut.txt Ausgaben = TextOut.txt TextOut.txt enthält nicht die $ (xxx) Makro-Erweiterungen. Sieht nicht gut aus. – EMS
Nicht sicher, was Sie tun. Stellen Sie sicher, dass die Dateinamenerweiterung .mc ist, nicht –