Res. > Datei & umgekehrt?



  • Ich hab irgendwann mal ein Tut gesehen, in dem beschrieben war, wie man Ressourcen in Dateien und umgekehrt speichern kann. Weiß zufällig noch jemand, wo das war? 😉 (codeguru, codeproject, hier o.ä. ?) 🙄

    Thx.

    Happoasi



  • << etwas irritiert schaut

    Die Resource eines Projektes ist eigentlich eine Textdatei die Du Dir mit einem Normalen Editor ansehen kannst ?!??



  • Gut, doof erklärt:

    Ich will zur Laufzeit meines Programmes eine Ressource (z.B. ein als Typ "JPG" importiertes JPEG-Bild) in eine Datei schreiben. So'ne Art Installation. Dazu hatte ich halt irgendwann mal 'n Tut gesehen, und wollte daher wissen, ob's vielleicht noch jemand anderes gesehen hat. 🙄

    Happosai



  • Guck ma hier in die FAQs, ich glaub, dass ich sowas mal in die FAQ verschoben hab, bin mir aber nicht 100% sicher.



  • Leider nicht, dEUs, wir haben nur 1x "Ressourcen in ein anderes Projekt kopieren" 😞

    Happosai



  • Mist.
    Schreib mir irgendwann in den nächsten Tagen mal ne email (adresse siehe Profil) , dann kann ich dir n Beispiel schicken, bzw es hier reinkopieren. Hab im Moment nur keine Zeit und Lust, ihn zu suchen 😉



  • Microsoft hat sehr gute Bsp.



  • Kleiner Tip: 🙂

    //Datei in Resourcen einbinden (in <project>.rc)
    //-------------------------------------
    IDR_FILE FILE DISCARDABLE "res\\file.test" // Ist glaub ich klar, oder???
    
    //Dateizugriff aus den Resourcen heraus
    //-------------------------------------
    
    // Erstmal Zugriff auf die Resource holen
    HINSTANCE hInst = AfxGetResourceHandle();
    HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(IDR_FILE), "FILE");
    ASSERT(hRsrc);
    
    // Wenn hRsrc nicht 0 ist Länge und Inhalt der Resource holen
    DWORD len = ::SizeofResource(hInst, hRsrc);
    BYTE* lpRsrc = static_cast<BYTE*>(::LoadResource(hInst, hRsrc));
    ASSERT(lpRsrc);
    
    // Nun kann man CMemFile aus den MFC's benutzen um auf die Resource zuzugreifen
    CMemFile file(lpRsrc, len);
    
    // ... hier kann man aus CMemFile in ein CFile auf der Platte schreiben
    

    Hoffe das hilft dir... 🙂


Anmelden zum Antworten