Binary-Resource (z.B. Exe) laden und speichern
-
Hallo zusammen,
wollt ma fragen wie ich ne Resource laden und auf der Festplatte abspeichern kann. Also wenn ich in meiner Exe-Datei zum Beispiel eine weitere Exe als Resource eingebunden habe oder z.B. ein *.wav -File. Jo hab schon gesehen da gibts die Funktionen LoadResource und FindResource nur wie bekomme ich einen Pointer auf den Speicherbereich?? Also damit ich die Resource dann als Datei auf die Festplatte schreiben kann.
Wäre echt goil wenn ihr mir da nen Anhaltspunkt geben könntet.
Schönen Gruß
Greetz
Xzibit
-
Hier ist eine Funktion, die das erledigt:
int DumpResource(LPCTSTR lpModuleName, LPCTSTR lpFileName, const int iResourceID, LPCTSTR lpResName) { HINSTANCE hInst = GetModuleHandle(lpModuleName); if(!hInst) return 0; HRSRC hResource = FindResource(hInst, MAKEINTRESOURCE(iResourceID), lpResName); if(!hResource) return 0; HGLOBAL hGlobal = LoadResource(hInst, hResource); if(!hGlobal) return 0; void* pData = LockResource(hGlobal); if(!pData) { FreeResource(hGlobal); return 0; } FILE* file = _tfopen(lpFileName, _T("wb")); fwrite(pData, SizeofResource(hInst, hResource), 1, file); fclose(file); FreeResource(hGlobal); return 1; }sorry für die alten C-Dateifunktionen :p
-
Yeah goil vielen Dank!
Genau das wonach ich gesucht hab. DANKEGrüße
Xzibit
-
Wie kann ich diese Funktion unter VC++.Net verwenden. Ich habe das mal eingebunden, weiß aber nicht was die einzelnen Parameter
(LPCTSTR lpModuleName, LPCTSTR lpFileName, const int iResourceID, LPCTSTR lpResName) bedeuten.Danke für die Hilfe
EDIT:
Hat sich erledigt -> habs doch gerade hinbekommen!!!