exe über Resource in Anwendung einbinden



  • Hallo,
    Ich versuche gerad vergeblich zwei exe-Dateien in meine Anwendung über Resourcen einzubinden. Dabei bin ich wie folgt vorgegangen:
    - zuerst habe ich zwei Dateien erzeugt:

    Resource.rh schrieb:

    #ifndef RESOURCE_RH
    #define RESOURCE_RH
    //------------------------------------------------------------
    #define RES_tar 100
    #define RES_gzip 101
    //------------------------------------------------------------
    #endif

    Resource.rc schrieb:

    #include "Resource.rh"
    //------------------------------------------------------------
    RES_tar RCDATA "tar.exe"
    RES_gzip RCDATA "gzip.exe"
    //------------------------------------------------------------

    - Anschliessend habe ich die Resource.rc dem Projekt hinzu gefügt. Wenn ich die Grösse der Compilierten exe ansaue, so sind die beien anderen Programme enthalten.
    - anschliessend versuche ich über TResourceStream auf die Resourcen zu zugreifen:

    TResourceStream* FileResource;
    :arrow_right: FileResource = new TResourceStream((int)Application->Handle,"RES_tar",RT_RCDATA);
    FileResource->SaveToFile(InstallDir+"tar.exe");
    delete FileResource;
    FileResource = new TResourceStream((int)Application->Handle,"RES_gzip",RT_RCDATA);
    FileResource->SaveToFile(InstallDir+"gzip.exe");
    delete FileResource;
    

    Der Debuger bleibt nun bei der mit dem ➡ markierten Zeile stehen und gibt folgende Fehlermeldung aus:

    Debugger-Exception schrieb:

    Ressource RES_tar wurde nicht gefunden.

    Kann mir da jemand verraten, was ich falsch mache und wie es richtig wäre?



  • Haben den Code nochmals angeschaut und bemerkt wo der Fehler liegt: 😡
    So funktionierts:

    FileResource = new TResourceStream(NULL,"#100",RT_RCDATA);
    FileResource->SaveToFile(InstallDir+"cyginsttar.exe");
    delete FileResource;
    
    FileResource = new TResourceStream(NULL,"#101",RT_RCDATA);
    FileResource->SaveToFile(InstallDir+"cyginstgzip.exe");
    delete FileResource;
    

Anmelden zum Antworten