system



  • system("C:\\TASM32,Hello.asm");
    

    TASM32 kann ich ja ohne Probleme aufrufen, aber was muss ich tun damit Hello.asm übersetzt wird?



  • Lass einfach das Komma weg:

    system("C:\\Tasm32 Hello.asm ");

    Damit wird die Datei Hello.asm übersetzt und eine Objektdatei
    mit dem Namen Hello.obj wird in deinem Arbeitsverzeichnis generiert.
    Allerdings würde ich die Tasm.exe in das verzeichnis deiner Anwendung schieben und es
    a) mit relativem Pfad ausführen
    b) die Ausgabe pipen.

    rya.
    Scorcher24



  • leider ist das
    system("C:\\Tasm32 Hello.asm ");
    nicht die lösung 😞
    ich bekomme immer noch kein Hello.obj



  • Also ich benutze selbst den TASM und bei mir funzt das so. Probier mal folgendes:

    system("c:\\TASM32 Hello.asm -o c:\\Hello.obj");
    

    Gibt denn der TASM irgendwas aus ?? Irgendwelche Fehlermeldungen ?? Bedenke dass die Hello.asm im selben Verzeichnis sein muss wie deine .exe Datei in der du diesen
    Aufruf hast. Desweiteren wäre es mal gut zu wissen was für eine Art von Programm du gerade schreibst und die näheren Umstände deines Projektes. Sonst kann man dir leider nicht so toll helfen.

    rya.
    Scorcher24

    EDIT: theoretisch reicht sogar TASM32.exe Hello, da .asm automatisch angefügt wird.



  • jo danke 👍 , aber wieso muss meine exe in dem Verzeichniss sein????????
    Ich dachte es reicht den Pfad anzugeben, gibt es noch eine Möglichkeit die Meldungen die der TA zurückgibt aus dem Dos-Fenster zu bekommen? Und wie gibt man relative Pfade an?



  • Ok wenigstens gehts jetzt...

    Grundsätzlich solltest du eigentlich wissen, dass man eine Datei nur anhand ihres Pfades angeben kann, oder sie dann im Arbeitsverzeichnis sein muss.
    Das Arbeitsverzeichnis deiner Anwendung ist immer das, in der du es gestartet hast.
    Bekommst du bei Konsolenanwendungen über argv[0] raus.
    Deswegen musst du entweder den absolzuten Pfad ("C:\\asm\hello.asm") oder den relativen Pfad angeben. Relative Pfade:
    angenommen sei ein verzeichnis mit dieser struktur:

    + myDir
     - bin
     - asm
    

    Wenn du jetzt im Verzeichnis bin bist und das Verzeichnis asm relativ angeben willst schreibst du:

    ..\asm
    

    da .. immer ein "Link" auf das übergeordnete und . ein "Link" auf das aktuelle Verzeichnis ist.
    Das sollte man als HobbyProgrammierer eigentlich wissen...

    rya.
    Scorcher24


Anmelden zum Antworten