exe ist keine win32-Anwendung



  • Windows Vista

    Ich wollte ein kleines Installationsprogramm schreiben und die Idee war, hinter das exe-Installationsprogramm die zu installierenden Dateien zu kopieren.

    Wenn ich jetzt mein inst.exe starte, startet es korrekt.
    Wenn ich irgendetwas (völlig egal was und wieviel) hinter mein inst.exe kopiert habe (sodass diese Datei also länger wird), meldet Windows Vista:
    Dies ist keine gültige win32-Anwendung.

    Anscheinend wird also irgendwo im Header der exe die Länge festgehalten.
    Weiss jemand wo ?

    Oder wie kann ich sonst meine zu installierenden Dateien dort hineinpacken ?
    (Nicht zum Compile-Zeitpunkt, denn es kann verschiedenen Inhalt geben).



  • ich hab das frueher so geloest, dass ich Programmdatei in eine Binaerresource (RT_BINARY), innerhalb des Installers gepackt habe.

    gruss
    dirk


  • Mod

    Die Größe des Modules steht im PE-Header.



  • Du hast Glück, dass ich mich gerade damit beschäftige ...

    In den Linkeroptionen kann man festlegen, ob eine Prüfsumme hinterlegt werden soll. Und wenn du zu faul bist, kannst du das ganze auch mit einem Hex-Editor ändern, hier eine Vorlage.

    EDIT: Was die ganze Geschichte angeht: Kannst du natürlich machen, aber dann muss du dir genau merken, an welchem Offset welche Dateien drin und wie lange diese sind. Ein Fehler, und PUFF! kann das ganze zusammenkrachen.


Log in to reply