zusätzliche exe erstellen



  • hi,

    ich habe ein Problem: Ich möchte mit meinem WinApi Programm per Knopfdruck eine .exe erstellen lassen und sie dann an einen bestimmten Ort speichern. Also, das Programm von mir erstellt weitere Programme. Geht das?

    Danke schon mal!


  • Mod

    Ja!
    Was glaubst Du was ein Compiler und ein Linker ist?

    Aber da Du diese Frage stellst, bezweifle ich, dass Du mit Deinem auch nur im Ansatz das Umsetzen köntest.

    BTW: Schau Dich mal nach interpretativen Sprachen um (VBScript. etc). Ansonsten hat .NET durch den internen Aufbau hier mit Sicherheit leichtere Ansätze als native Programme.



  • Für .NET gibst sorgar eine Common Compiler Infrastructure auf Codeplex.



  • Hallo Helge Schneider,
    ich hoffe, Du machst das sicher nicht auf'm Katzeklo, oder? 😃

    Nun, was ich stark vermute:
    Was Du möchtest, ist eine bereits fertig compilierte EXE-Datei in Deine Applikation einzubinden.
    Und irgendwann diese EXE-Datei an einem Speicherort zu speichern und von dort auszuführen. Stimmts?
    Du kannst diese EXE-Datei als Resource in Dein Hauptprogramm einbinden.
    Und diese mit gewöhnlichen Datei-Schreibroutinen (wie z.B. fputc(), fwrite() oder WriteFile() bzw. WriteFileEx()) Byte für Byte schreiben.

    Andererseits, wenn Du wirklich selbst eigene EXE's erzeugen (also compilieren und linken) möchtest: Das ist mehr Thema "Compilerbau" und ist eine eigene Wissenschaft für sich. Dazu gibt es etliche Tutorials im Netz, Google ist da Dein Freund.

    Anderer Kompromißvorschlag (es geht ums Prinzip, ich selbst habe sowas in dieser Form noch nie gemacht):
    Du könntest von Deiner Applikation aus einen externen Compiler aufrufen um eine EXE zu erzeugen zu lassen. Ein Compiler kann hier sowohl Visual Studio sein, als auch z.B. AutoIt. Sie alle verstehen Kommandos die über Kommandozeilen übergeben werden.

    Just my 5 cents,
    Martin



  • Mmacher hatte mit seiner Vermutung recht - nicht nur wegen dem Katzenklo.
    Ich bedanke mich recht herzlich!


Anmelden zum Antworten