Resourcenzugriff zur laufzeit...
-
Hi ich bin noch neu mit MFC usw.
wolte mal fragen also die resourcen zum beispiel ein .BMP
sagen wir maltest1.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 resourcez.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. LoadImageGibt 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...