Max11.111
Bekanntes Mitglied
- Dabei seit
- 12.06.2008
- Beiträge
- 2.416
- Reaktionspunkte
- 0
Hi.
Und schon wieder stelle ich ein dumme Frage...
Ich versuche die eingebundene Datei "7z.exe" zu extrahieren. Leider ohne Erfolg.
Meine "ressource.rc" sieht so aus:
Die Datei wird auch fehlerfrei und problemlos eingebunden.
Hier mein Code, welcher die Ressource eigentlich extrahieren sollte.
Wenn ich sie jetzt aber exportieren will, bekomme ich immer bei WriteFile einen Error:
Herzlichen Dank für eure Bemühungen!
Und schon wieder stelle ich ein dumme Frage...
Ich versuche die eingebundene Datei "7z.exe" zu extrahieren. Leider ohne Erfolg.
Meine "ressource.rc" sieht so aus:
Code:
101 BINARY "7z.exe"
Hier mein Code, welcher die Ressource eigentlich extrahieren sollte.
Code:
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow);
bool ExtractRes(char*,int,char*);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
bool success = ExtractRes("BINARY", 101, "7z(3).exe");
if (success == false)
MessageBox(NULL, "Error detected, process exits!", "Error", NULL);
return 0;
}
bool ExtractRes(char* type, int ResID, char* file)
{
HINSTANCE hCurrentFile = GetModuleHandle(NULL);
HRSRC hRessource = FindResource(NULL,//hCurrentFile,
(LPCSTR)&ResID,
type);
if(hRessource != NULL)
{
MessageBox(NULL, "Error", "2", NULL);
return false;
}
HGLOBAL hSrcFileLoad = LoadResource(
NULL,//hCurrentFile,
hRessource);
void* pvSrcFileData = LockResource(hSrcFileLoad);
size_t stSrcFileSize = SizeofResource(
hCurrentFile,
hRessource);
HANDLE hCreatFile = CreateFile(
file,
GENERIC_ALL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hCreatFile == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "INVALID_HANDLE_VALUE", "", NULL);
CloseHandle(hCreatFile);
return false;
}
[B][I] bool writefile = WriteFile(
hCreatFile,
pvSrcFileData,
stSrcFileSize,
NULL,
NULL);[/I][/B]
if(writefile==false)
{
MessageBox(NULL, (LPCSTR)GetLastError(), "", NULL);
CloseHandle(hCreatFile);
return false;
}
CloseHandle(hCreatFile);
return true;
}
Wenn ich sie jetzt aber exportieren will, bekomme ich immer bei WriteFile einen Error:
Herzlichen Dank für eure Bemühungen!