2016-10-28 78 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,以便保留任何現有文件數據以供讀取。