Sie verwenden ungültigen Code, der nicht kompiliert wird. Und Sie verwenden das falsche Format für Ihr Zeichenfolgenliteral. Versuchen Sie stattdessen:
#include <windows.h>
int main() {
HANDLE hFile = CreateFile("c:\\nader", GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
CloseHandle(hFile);
}
return 0;
}
aber sagen, dass mit GENERIC_READ
, FILE_SHARED_READ
und CREATE_ALWAYS
macht zusammen keinen Sinn, es sei denn Ihre einzige Aufgabe nur ist die Datei zu erstellen, aber nicht jede E/A mit.macht hFile
schreibgeschützt, FILE_SHARE_READ
stellt sicher, dass niemand sonst in die gleiche Datei schreiben kann, während Sie es geöffnet haben, und CREATE_ALWAYS
stellt sicher, dass die Datei immer leer ist, wenn sie geöffnet wird, also gibt es keine Möglichkeit, dass jemals irgendwelche Daten vorhanden sind zu lesen von hFile
. Wenn Sie Daten aus der Datei lesen möchten, ändern Sie mindestens CREATE_ALWAYS
in OPEN_EXISTING
oder OPEN_ALWAYS
, so dass alle vorhandenen Dateidaten zum Lesen erhalten bleiben.
Korrektes Escaping verwenden: '" c: \\ nader "' –
Das Überprüfen von Rückgabe- und Fehlercodes ist immer eine gute Idee. –
'#include' und '... var = ...' vor 'CreateFile'. –
i486