Marie23 hat geschrieben:Klappt leider immer noch nicht...
Du hast Argument 2 und 3 von fwrite vertauscht.
Du hast SizeofResource() falsch angewendet, schau Dir mal die Hilfe zu
dieser WinAPI-Funktion an.
Code: Alles auswählen
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include "res.h"
int main(int argc, char* argv[]) {
LPVOID data1;
FILE *file;
DWORD size;
HRSRC resource;
if( resource = FindResource(0, MAKEINTRESOURCE(ID_MOD_01),"BINARY") ) {
if( size = SizeofResource(0,resource) ) {
if( data1 = LockResource( LoadResource(0, resource)) ) {
if( file = fopen("foto.jpg","wb") ) {
if( fwrite(data1,size,1,file) ) {
printf("Datei geschrieben.\n");
} else {
printf("Konnte datei nicht schreiben!\n");
}
fclose(file);
} else {
printf("Konnte datei nicht oeffnen!\n");
}
} else {
printf("LockResource = 0!\n");
}
} else {
printf("SizeofResource ist 0!\n");
}
} else {
printf("Kann Resource nicht finden!\n");
}
return 0;
}
oder
Code: Alles auswählen
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include "res.h"
int main(int argc, char* argv[]) {
LPVOID data1;
FILE *file;
DWORD size;
HRSRC resource;
if( !( resource = FindResource(0, MAKEINTRESOURCE(ID_MOD_01),"BINARY") ) ) {
printf("Kann Resource nicht finden!\n");
return 1;
}
if( !( size = SizeofResource(0,resource) ) ) {
printf("SizeofResource ist 0!\n");
return 1;
}
if( !( data1 = LockResource( LoadResource(0, resource)) ) ) {
printf("LockResource ergibt 0!\n");
return 1;
}
if( !( file = fopen("foto.jpg","wb") ) ) {
printf("Konnte datei nicht oeffnen!\n");
return 1;
}
if( fwrite(data1,size,1,file) ) {
printf("Datei geschrieben.\n");
}
else {
printf("Konnte datei nicht schreiben!\n");
}
fclose(file);
return 0;
}
getestet.