Frage

Ich mag möglich Visual Studio 2008 zu dem größten Umfang nutzen, während effektiv Kompilieren / Verknüpfung / Gebäude / etc Code, als ob alle diese bauen Prozesse durch die mit MASM 6.11 versehen Werkzeugen durchgeführt wurden. Die genaue Version von MASM spielt keine Rolle, solange es innerhalb des 6.x Bereichs ist, wie das ist, was mein College-16-Bit-Versammlung zu lehren verwendet wird.

Ich habe einige der Forschung zu diesem Thema durchgeführt und sind zu dem Schluss gekommen, dass es mehrere Optionen:

  1. rekonfigurieren VS der MASM 6.11 ausführbare Dateien mit den gleichen Fahnen rufen, etc wie MASM 6.11 nativ tun würde.
  2. Erstellen Vermittler Batch-Datei (en), die von VS aufgerufen werden, um dann die richtigen Befehle für etc MASM des Linkers aufrufen.
  3. rekonfigurieren VS-interne Build-Tools / Regeln (Assembler, Linker, etc.) eine Umgebung identisch mit dem von MASM 6.11 verwendet, zur Verfügung zu stellen.

Option (2) gebracht wurde, wenn ich, dass die Optionen „External Tools“ Schnittstelle des in VS realisiert unzureichend sein kann, richtig MASM die Build-Tools, so dass eine Batch-Datei zu interpretieren VS strenge Methode der Übergabe von Argumenten nützlich sein könnte aufzurufen, wie viele meiner Lernen darüber, wie diese Arbeits meine manuell einzumischen Aufruf ML.EXE, link.exe usw. von der Eingabeaufforderung.

Im Folgenden sind einige Links, die bei der Beantwortung meiner Frage nützlich erweisen. Bitte beachten Sie, dass ich gelesen habe, sie alle und keine sind die eigentliche Lösung. Ich kann nur meine Hoffnung Angabe MASM 6.11 nicht jemand daran hindern, eine vielleicht allgemeinere Antwort beitragen.

ähnliche Verfahren zur Option (2) verwendet, aber die Benutzern auf dem Thread nicht kontaktierbar:
http://www.codeguru.com/forum/archive/ index.php / t-284051.html
(Auch, ich habe meine Zweifel an der Notwendigkeit eines Vermittlers Batch-Datei)

Veraltete Erklärung zu meiner Frage:
http://www.cs.fiu.edu/~downeyt/cop3402/ masmaul.html

Wahrscheinlich das nächste, was ich zu einer endgültigen Lösung gekommen sind, sondern bezieht sich auf eine Reihe von Tools von etwas außer MASM, verwendet auch eine Batch-Datei:
http://www.kipirvine.com/asm/gettingStarted/index. htm # 16-Bit

Ich entschuldige mich, wenn meine Terminologie für die Werkzeuge in jedem Schritt des Codes verwendet -> exe-Prozess ausgeschaltet ist, aber da ich versuche, die Gesamtheit der Schritte zwischen dem Abschluss des Schreibens der Code und zum Erzeugen eines ausführbaren zu reproduzieren, I glaube nicht, dass es darauf ankommt, viel.

War es hilfreich?

Lösung

Es gibt eine MASM Regeln Datei befindet sich bei (32-Bit-System entfernen (x86)):

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\masm.rules

Kopieren Sie diese Datei in Ihrem Projektverzeichnis, und fügen Sie den benutzerdefinierten Build-Regeln für Ihr Projekt. Dann "Rule Datei ändern ...", wählen Sie die MASM Buildregel und "Ändern Build-Regel ...".

Fügen Sie eine Eigenschaft:

  • Benutzerobjekttyp: String
  • Standardwert: * inkl
  • .
  • Beschreibung:. Fügen Sie zusätzliche MASM Dateiabhängigkeiten
  • Anzeigename: Zusätzliche Abhängigkeiten
  • Ist nur lesen: False
  • Name: AdditionalDependencies
  • Seite Eigenschaft Name: Allgemein
  • Schalter: [Wert]

Stellen Sie den Zusätzliche Abhängigkeiten Wert auf [AdditionalDependencies] . Der Build sollte nun automatisch Veränderungen erkennen *.inc, und Sie können die Eigenschaften für eine einzelne asm-Datei angeben andere bearbeiten.

Andere Tipps

Sie können ein Makefile-Projekt. In Visual Studio, unter Datei / Neu / Projekt, wählen Sie Visual C ++ / Makefile-Projekt.

Auf diese Weise können Sie einen beliebigen Befehl auszuführen Ihr Projekt zu erstellen. Es muss nicht C / C ++ sein. Es ist nicht einmal eine traditionelle NMake Make-Datei sein. Ich habe es verwendet, um einen Treiber mit einer Batch-Datei zu erstellen, und mit einem NAnt Skript.

Es sollte ziemlich einfach sein, es zu bekommen, die MASM 6.x Werkzeugkette auszuführen.

würde ich vorschlagen, kundenspezifische definieren Regeln Bauen Sie auf Dateierweiterung abhängig. (Visual Studio 2008, zumindest in Professinal Edition können Dateien erzeugen .rules, die verteilt werden können). Dort können Sie definieren benutzerdefinierte Tools für asm-Dateien erstellen. Durch die Nutzung dieses Ansatzes, sollten Sie in der Lage sein, den Linker Schritt zu lassen wie es ist.

Weg zurück, haben wir MASM32 Link-Text als IDE Studenten Montage lernen zu helfen. Sie könnten ihre Batch-Dateien überprüfen, was sie tun, montieren und Link.

anstelle von Batch-Dateien, warum nicht die einen benutzerdefinierten Schritt auf die Datei definiert verwenden?

Wenn Sie Visual Studio verwenden möchten, können Sie sie nicht ein Skelett Projekt in C / C ++ mit der Einstiegspunkt für eine Konsole App geben Sie eine Funktion aufrufen, die en leeren Inline-Montageblock hat, und lassen Sie sie ihre Ergebnisse füllen es?

Warum nicht Irvine Leitfaden benutzen? Irvine Bibliothek ist schön, und wenn Sie möchten, können Sie es ignorieren und direkt mit Windows-Procs arbeiten. Ich habe für einen Führer wie diese suchen, Irvine war die beste Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top