2016-10-28 81 views
-4

我试图使用Windows API创建文件,但是文件名格式是一个问题! 我该如何处理?如何使用WINAPI创建文件

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

使用正确的转义:'“c:\\ nader”' –

+0

检查返回和错误代码总是一个好主意。 –

+0

'#include '和'... var = ...'在'CreateFile'之前。 – i486

回答

0

您正在使用无法编译的代码。而且你的字符串文字格式不正确。试试这个:

#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; 
} 

话虽这么说,使用GENERIC_READFILE_SHARED_READCREATE_ALWAYS在一起是没有意义的,除非你的唯一任务就是创建该文件,但没有用它做任何I/O。 GENERIC_READ使得hFile只读,FILE_SHARE_READ确保没有其他人可以在打开时写入同一文件,并且CREATE_ALWAYS确保文件在打开时始终为空,所以不可能存在任何数据从hFile读取。如果要从文件中读取数据,则至少应将CREATE_ALWAYS更改为OPEN_EXISTINGOPEN_ALWAYS,以便保留任何现有文件数据以供读取。