C++ ネイティブ WinAPI で一時ファイルを作成するたびに、返される HANDLE は常に INVALID_FILE_HANDLE ですが、一時ファイルは正しく作成されていますか?
私は何か間違ったことをしていますか?
GetLastError() を使用すると、出力は次のようになります。
「ファイルが存在します」
以下のコードでは、一時ファイルを正常に作成できますが、CreateFile 関数は常に INVALID_FILE_HANDLE を返し、ファイル ハンドルにテキストを書き込むことができません。
GetTempPath(dirLen, dir);
GetTempFileName(dir, fName, 0, tName);
HANDLE file = CreateFile(tName, GENERIC_WRITE, 0, NULL, CREATE_NEW,
FILE_ATTRIBUTE_TEMPORARY, NULL);
if (file == INVALID_HANDLE_VALUE) {
outputLastError(); // Outputs: "The file exists"
}
if (FAILED(WriteFile(file, (LPTSTR)toWrite.c_str(), strLen, 0, NULL))) {
cout << (_T("Failed to write string to file \r\n"));
outputLastError();
res = false;
}
// WriteFile doesn't fail but the temporary file is empty when I open it?