Was ist hier Falsch?

MSuter

Erfahrenes Mitglied
Was ist hier Falsch?! (Visual C++)
(Das File wird zwar erstellt, aber es hat nicht den richtigen inhalt!!
----------------------------------

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
HANDLE hFInput;
HANDLE hFOutput;
HANDLE hFTest;
int intID;
intID =1;




hFInput = CreateFile("c:\\test.jpg",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
hFOutput = CreateFile("c:\\test.sms",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,NULL,NULL);

hFTest = CreateFile("c:\\test2.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,NULL,NULL);

char strFHeader[] = "[sumatra][01000001]\n";
char strFFooter[] = "[end]";
char strID[10];
lstrcat(strID, "[");
lstrcat(strID, reinterpret_cast<char*>(intID));
lstrcat(strID, "]");

DWORD Size;
Size = GetFileSize(hFInput, NULL);
char *FileText;
FileText = new char[Size+1];

//reinterpret_cast<char*>(Size);

DWORD Writed;
DWORD Readd;
ReadFile(hFInput, FileText, Size+1, &Readd, NULL);
WriteFile(hFTest, FileText, lstrlen(FileText)+1, &Writed, NULL);
CloseHandle(hFInput);

//char strFileContent[1];

//lstrcat(strFHeader, strFHeader);
// strcat(strFHeader, strID);
lstrcat(strFHeader, FileText);
// lstrcat(strFHeader, strFFooter);


WriteFile(hFOutput, strFHeader, lstrlen(strFHeader)+1, &Writed, NULL);
CloseHandle(hFOutput);

return 0;
}
 
Zuletzt bearbeitet:
Wenn man das hier umdreht:

Code:
ReadFile(hFInput, FileText, Size+1, &Readd, NULL); 
WriteFile(hFTest, FileText, lstrlen(FileText)+1, &Writed, NULL); 
CloseHandle(hFInput);

kommt das raus:

Code:
ReadFile(hFInput, FileText, Size+1, &Readd, NULL); 
CloseHandle(hFInput); 
WriteFile(hFTest, FileText, lstrlen(FileText)+1, &Writed, NULL);


und schreibt das in die file:

[sumatra][01000001]
27[end]

passt das, wenn die eingelesene file 26Byte groß ist ?!

ChH
 
Nee

Du hast mich falsch verstanden, es soll nicht die Dateigrösse, sondern die gesamten binären daten des files Hineingeschrieben werden.
Das resultrat sollte dann kopie der datei sein, die eingelesen wird, allerdings mit meinem eigenen Header

(Damit du mich jetzt nicht fragst weshalb ich das machen will und warum ich es nicht einfach kopiere:
an das neue file werden später dann noch andere binären Daten (weitere Bilder) angehängt, so habe ich dann eine Datei, die viele Bilder in sich Beinhaltet. Ich brauche das ganze dann als Skindatei für meinen eigenen MP3 Player.)

Gruss MSuter
 
dann hab ich da wohl muell gebaut...

warum benutzt du dann DWORD?

ich weiss nich wie es genau heisst, aber da muesste es ne bessere methode geben...
 

Neue Beiträge

Zurück