MS Visual Studio 2010 Verwendung der .asm-generierten Datei

8

Ich möchte nach etwas fragen, das ich mit Visual Studio 2010 ausprobieren möchte.

Ich erstelle eine .asm-Datei aus der.cpp-Datei, indem ich die Option "Assembler-Ausgabe" in den Projekteigenschaften - & gt; C / C ++ - & gt; Ausgabedateien (/ FAs).

Meine Frage ist, wie kann ich in einem nächsten Schritt diese .asm-generierte Datei verwenden, um von dieser wieder zu verlinken, ohne die .cpp-Datei zu verwenden, falls ich einige Änderungen in der .asm-Datei vornehmen und dann verknüpfen möchte wieder, indem ich die Änderungen, die ich auf der Montageebene gemacht habe, beibehalten habe.

Es wäre sehr hilfreich, wenn Sie die genauen Schritte angeben könnten, einschließlich der korrekten Konfiguration, die möglicherweise in den Projekteigenschaften benötigt wird.

    
Economou Kyriakos 11.10.2011, 22:05
quelle

3 Antworten

1

Hier ist ein Tutorial Ссылка

    
MartyTPS 27.10.2011 04:30
quelle
0

Ich habe das kürzlich gemacht. Hier ist eine Wiederholung der Antwort, die ich hier gegeben habe compile-assembly-output- generated-by-vc . Es stellt sich heraus, dass Sie dies in 32-Bit-Modus in MSVC2012 noch tun können, aber ich denke, 64-Bit-Modus ist hoffnungslos.

Für den 32-Bit-Modus hier ist, was Sie tun.

Erstellen Sie ein leeres Projekt und eine Quelldatei Source.cpp

%Vor%
  1. Lege dein Projekt richtig an und wähle "Build Customization" und
    Wählen Sie masm wie hier beschrieben Ссылка
  2. Unter C ++ / OutputFiles wählen Sie Assembly Output / FA
  3. Comipile im 32-Bit-Modus Freigabemodus
  4. Laden Sie die Datei Source.asm in MSVC, damit Sie sie anzeigen können. Es wird noch nicht funktionieren. Ein paar Änderungen sind noch notwendig.
  5. Unter C ++ / Optimierung deaktivieren Sie Whole Program Optimization (entfernt /GL ). Dies fügt die Zeile INCLUDELIB MSVCRT hinzu.
  6. Im Linker / Erweitert setzen Sie die letzte Option "Bild hat sichere Exception-Handler" auf Nein ( /SAFESEH:NO )
  7. Nun sollten Sie eine Source.asm-Datei haben, die dasselbe tut wie die Source.cpp-Datei. Kopieren Sie die Datei "Source.cpp" aus dem Verzeichnis "Release" in dasselbe Verzeichnis wie "Source.cpp" (sie wird also beim Erstellen / Bereinigen nicht gelöscht).
  8. Fügen Sie Source.asm (als vorhandene Datei) zu den Quelldateien hinzu und entfernen Sie Source.cpp aus dem Build.
  9. Erstellen Sie neu, und Sie sollten "Hello World" sehen, ohne dass Sie Montagelinien manuell ändern müssen.

Ich habe dies für kompliziertere Funktionen verwendet. Ich tue es normalerweise auf einem getrennten Modul und benutze extern "C" auf dem Funktionsnamen, um den C ++ Namen Mangling zu entfernen.

    
Z boson 18.01.2014 12:49
quelle
0

Ziehen Sie die OBJ-Dateien einfach in das Projekt (Projektmappen-Explorer): Wie Sie OBJ-Dateien in das Projekt einfügen

>     
Slappy 04.02.2015 06:36
quelle