每当我在 C++ Native 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?