2010-06-11 3 views

Antwort

1

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.

+0

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

+0

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

+0

Nicht sicher, was Sie tun. Stellen Sie sicher, dass die Dateinamenerweiterung .mc ist, nicht –

0

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> 
    
22

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.

+1

Wenn Ihr Projekt bereits eine RC-Datei hat, können Sie einfach '1 11„MSG00409.bin“add' es –

+0

was die Verwendung der .bin-Datei sollte es enthält irgendwie sein? –

+3

wenn Sie Räume in FullPath haben, dann verwenden Sie mc "% (FullPath)" –

0

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> 
Verwandte Themen