DLL bei Programmstart aus Programm herrauskopieren

Mit SizeofResource() bekommst du die Grösse der Ressource in Bytes zurück.

Dann machst du mit deinen Lieblingsfilefunktionen ein File auf, schreibst einen Daten-Block mit dem Pointer den du schon hast und der Grösse rein und machst das File wieder zu. Fettich.
 
Ich weiß nicht warum mir das ganze so schwer fällt aber wenn cih den folgenden Code benutze,
Code:
	FILE *f = fopen("test.dll", "wb"); 
	fwrite( data, size, size,f);
	fclose(f);
	int i = GetLastError();
	char ch[20];
	itoa(i,ch,10);
	MessageBox(ch);

bekomme ich den Fehler 1784 The supplied user buffer is not valid for the requested operation.

Die länge der Resource hab ich zuvor bestimmt!
 
Zuletzt bearbeitet:
Die Parameter zu fwrite sind falsch:

fwrite( data, size, 1, f );

Welchen Typ hat data? Eventuell musst du auf void* casten:

void* pData = (void*)LockResource( ... );

// schnippelschnappel

fwrite( data, size, 1, f );

// schnippelschnappelschnappel, das kleine Kroko...
 
Vielen vielen Dank für alles :) :) :) :) :) *freu*

Sorry dass ich so oft genervt hab... aber danke an alle die mir bei meinem Problem geholfen haben. Ihr seit echt super :)

mfg Executer
 

Neue Beiträge

Zurück