Resourcenzugriff zur laufzeit...



  • Hi ich bin noch neu mit MFC usw.
    wolte mal fragen also die resourcen zum beispiel ein .BMP
    sagen wir mal

    test1.bmp

    fürge ich zu meinen resourcen dazu.
    In z.B. einer picturebox kann ich es ja auch nun per "eigenschaften" anzeigen.

    also die bmp wird doch in der EXE mit compiliert oder ?

    wenn ja,wie kann ich auf sich zu greifen einfach als Datei

    ich möchte sie einfach zum schreiben öffnen
    mit CFile usw. wie eheißt der path zu einer resource

    z.B. nach diesem muster:
    ...
    CFile xfile;
    xfile.Create("C:\\test1.bmp");
    ...

    welchen pfad haben die resourcen ?



  • Um ne Bitmap zu laden: => LoadBitmap bzw. LoadImage
    Icon: LoadIcon u. LoadImage

    Gibt eig. für jeden Standard-Res-Typ ne eigene Lade-Funktion



  • Zum schreiben öffnen geht nicht. Du bekommst höchstens Lesezugriff über ein CMemFile...:

    // Erstmal Zugriff auf die Resource holen
    HINSTANCE hInst = AfxGetResourceHandle();
    HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(IDR_MYFILE), "MYFILE");
    ASSERT(hRsrc);
    
    // Wenn hRsrc nicht NULL ist Länge und Inhalt der Resource holen
    DWORD len = SizeofResource(hInst, hRsrc);
    BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
    ASSERT(lpRsrc);
    
    // Nun kann man CMemFile aus den MFC's benutzen um auf die Resource zuzugreifen
    CMemFile file(lpRsrc, len);
    

    Wenn du Schreibzugriff haben willst musst du die komplette Exe auseinandernehmen und die Resourcen modifizieren. Das Format einer Win32-Exe gibts auf www.wotsit.org in der Section Binaries zum Download...


Anmelden zum Antworten