1

我想在 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 创建文件的示例,并告诉我我做错了什么。

4

3 回答 3

2

如果您希望创建文件,请使用 CREATE_ALWAYS 或 CREATE_NEW 而不是 OPEN_EXISTING。

CreateFile 函数 http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx

于 2012-07-17T07:15:51.060 回答
1

“OPEN_EXISTING : 打开文件或设备,仅当它存在时。如果指定的文件或设备不存在,则函数失败”。那是你的问题,我敢打赌。

GetLastError()不过,会告诉你更多。

于 2012-07-17T07:14:37.917 回答
0

实际问题是由于您指定的参数,您正在获得一个Invalid File HandleinCreateFile函数。这意味着将其 更改为或它将起作用。dwCreationDispositionOPEN_EXISTINGOpens a file or device, only if it exists.CREATE_ALWAYSCREATE_NEW

于 2012-07-17T07:14:50.380 回答