Exe datei erstellen



  • Hey leute ich wollte eine anwendung erstellen die auf anforderung eine exe erstellt ... also eine andere ausführbare exe datei

    als wenn man eine .txt datei erstellt mit ofstream
    blos eine funktionierende exe datei

    aber irgentwie sagt mir windows immer das die datei nicht ausgeführt werden kann ...

    das Programm soll nur eine datei sein also keine anderen Dateien solln benötigt werden ! 😃

    die anwendung soll in einer char/string variable gespeichter sein (oder sonst in irgenteiner variable)

    das Programm was das hauptprogramm erstellen soll ist auch relativ klein 8kb oder so ...

    hat da jemand ne Idee ?

    ich hoffe ihr vertshet was ich meien 🙂

    Lg, Tibolus



  • Schau dir den Konstruktor von std::ofstream an.
    Dort gibt es ein Flag namens: std::ios::binary, den musst du mitgeben, damit er die .exe binär beschreibt. Standard ist nämlich text.

    std::ofstream (constructor)

    std::ofstream out("abc.exe", std::ios::binary);
    


  • Der Hacker-Weg wäre jetzt natürlich, die ganze .exe in Bytecode als Array zu kompilieren, aber abgesehen davon, dass das extrem hässlich ist, funktioniert das auch nur bei sehr kleinen Dateien.
    Der üblichere Weg unter Windows wäre es, die Datei als Ressource zu linken.

    resource.rc:

    #include "resource.h"
    ID_DATA RCDATA "xyz.exe"
    

    resource.h:

    #define ID_DATA 1001
    

    Und dann:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms648042(v=vs.85).aspx
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms648046(v=vs.85).aspx
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms648047(v=vs.85).aspx

    Lass dir aber gleich gesagt sein, dass man so ein Vorgehen eigentlich immer durch ein sinnvolleres Konzept ersetzen kann. Was hast du denn damit vor?



  • ich will sozusagen mein eigendes InstallationsProgrammschreiben was ein Paar Exe datein erstellt ,aber ich leg viel wert auf selfmade deswegen wollte ich das installationsprogramm auch von mir :DD

    naja sieht aber alles kompliziert aus ausser das mit binärmodi...
    leider hab ich jetzt keine zeit das zu testen aber ich hoffe mal es klappt im binär modus !!

    cooky 😃 du hast mit bis jetzt immer geholfen 😉
    ich kann zwar mit deinem weg was anfangen aber ich glaub nicht das es was wird 😃
    da ich da so nicht ganz durchchecke

    könntest du mal den "hacker weg" erklären ?
    oder ist der noch komplizierter ??
    ich will nämlich nichtsowviel mit VSC++ rumspielen 😃 mit sourcecode wärs einfacher ^^

    aber thx für die antworten



  • Der beschriebene Weg oben ist eigentlich sehr einfach. Sind nur ein paar Zeilen Code. Ist auch relativ dynamisch. Lies dir das alles einfach mal in Ruhe durch, dann kommt das schon.
    Der "Hacker-Weg" war eher als Scherz gemeint, das funktioniert zwar, aber das willst du nicht wirklich nutzen.

    Edit: Und spricht etwas dagegen die Dateien einfach als .zip/.rar/.tar.gz auszuliefern? Niemand mag Programme, die man installieren muss..



  • man muss es ja nicht installieren ...

    also es ist ein konsolenfenster , dort kann man dann auf aufforderung (wenn mans will)

    eine weitere HilfsDatei erstellen (aber als exe)

    es ist sozusagen schon ein Programm was alleine geht aber man kann noch eine andere Datei erstellen ! 😃

    ob ich es wirklich hinbekommen zweifel ich mit de Windows zeugs da aber naja
    probieren geht über studieren ! xD


Log in to reply