Frage zur API Funktion "WriteFile"
-
Hallo zusammen,
wie kann ich soetwas fabrizieren:
WriteFile(hFile, L"Text ABC\n", MAX_BUFFER, &dwBytesWritten, NULL);Wozu brauche ich dwBytesWritten?
Ich will einfach nur in einer Datei schreiben "logging".
Einfach write(hFile, "Text");
Danke
-
Dann schreib dir doch ne Funktion dafür:
BOOL WriteFile(HANDLE hFile, const char* pszText) { DWORD dwWhoCares; return WriteFile(hFile, pszText, strlen(pszText), &dwWhoCares, 0); }
-
Hi!
Ich habe es getestet, aber sie schreibt nichts in die Datei rein!
HANDLE logger = NULL; --> ist global
BOOL WriteFile(const char* pszText) { DWORD dwWhoCares; return WriteFile(logger, pszText, strlen(pszText), &dwWhoCares, 0); }WriteFile("Test\n");Es lässt auch ausführen, aber die Datei ist leer!
-
Rückgabewert von WriteFile?
Rückgabewert von CreateFile?
CloseHandle aufgerufen?
-
Hier ist die Create Funktion:
logger = CreateFile(L"test.log", // create the log file GENERIC_WRITE, // open for writing 0, // do not share NULL, // no security CREATE_ALWAYS, // overwrite existing FILE_ATTRIBUTE_NORMAL | // normal file FILE_FLAG_OVERLAPPED, // asynchronous I/O NULL); // no attr. template
-
Wenn du FILE_FLAG_OVERLAPPED benutzt, musst du bei WriteFile eine OVERLAPPED-Struktur mitgeben.
-
Ich habe FILE_FLAG_OVERLAPPED weggelassen, aber ich kann die Datei nicht
mehr ansehen, während des Programm läuft!Wenn ich das Programm beende, dann kann ich den Inhalt der Datei anschauen!
Wie kann den Inhalt während des Prgramm läuft anschauen?
-
Indem Du sie entweder immer sofort nach schreiben wieder schließt oder sie "overlapped" öffnest...
-
leonReif schrieb:
0, // do not shareFILE_SHARE_READ statt 0.
-
Danke
