2

createfile() 関数が -1 を返す理由を考えてください。

Handle = CreateFile(filename, &H80000000, 0, 0, 3, &H80, 0)

これは数回実行されます。おそらくファイルが適切に閉じられていないのではないかと考えていましたか?

編集

Err.LastllError は 32 を返します。

4

2 に答える 2

4

どこかでファイルを閉じないことについては、おそらく正しいでしょう。まず、ファイルを開いている場所を確認し、エラー処理ルーチンが適切に配置されていることを確認します。エラー ハンドラーでは、"Handle" の値を確認し、有効な場合は CloseHandle(Handle) を呼び出します。また、読み取りアクセス用にファイルを開いているため、dwShareMode パラメータを 1 に変更して、同じファイルを読み取り操作用に開くことができるようにすることもできます。

于 2011-11-02T18:45:06.703 に答える
4

エラー 32 は ERROR_SHARING_VIOLATION (参照) です。これは、他のプロセスがまだファイルを開いていることを意味します。

于 2011-11-02T16:10:26.127 に答える