2012-07-17 71 views
0

我想在Visual C++中使用CreateFile()函數。當我以這種方式使用它時: -Visual C++中的CreateFile函數

{ 
BOOL bTest=FALSE; 
DWORD dwNumRead=0; 
HANDLE hFile=CreateFile(L"D:\\a.dat",GENERIC_READ,FILE_SHARE_READ, 
           NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL); 
bTest= CloseHandle(hFile); 
} 

bTest的值出現爲False且文件未創建。 如果可能,請說明一個使用CreateFile創建文件的例子,並告訴我我做錯了什麼。

回答

0

「OPEN_EXISTING:打開文件或設備,只有當文件或設備存在時,如果指定的文件或設備不存在,則該功能失敗。我敢打賭,這是你的問題。儘管如此,

GetLastError()會告訴你更多。

0

實際問題是,由於參數dwCreationDisposition您指定OPEN_EXISTING,因此您在CreateFile函數中獲得Invalid File Handle。這意味着Opens a file or device, only if it exists.將其更改爲CREATE_ALWAYSCREATE_NEW它將起作用。

+0

謝謝它與CREATE_NEW而不是OPEN_EXISTING工作。 – smishr4 2012-07-17 07:52:12