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

ファイルを作成したい場合は、OPEN_EXISTING の代わりに CREATE_ALWAYS または CREATE_NEW を使用してください。

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 に答える