2016-10-28 3 views
-4

Ich versuche, Datei mit Windows-API zu erstellen, aber das Dateiformat ist ein Problem! Wie kann ich damit umgehen?Wie kann ich Datei mit WINAPI erstellen

using namespace std; 

int main(){ 
    HANDLE WINAPI CreateFile("c:\nader", GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 
    return 0; 
} 
+2

Korrektes Escaping verwenden: '" c: \\ nader "' –

+0

Das Überprüfen von Rückgabe- und Fehlercodes ist immer eine gute Idee. –

+0

'#include ' und '... var = ...' vor 'CreateFile'. – i486

Antwort

0

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.

Verwandte Themen