我想知道WriteFile报错的原因在c++中使用的方法及列子
时间: 2024-03-23 08:40:38 浏览: 30
WriteFile是Windows API中的一个函数,用于向文件或设备写入数据。如果WriteFile函数写入数据时出现错误,可以调用GetLastError函数获取错误码,以确定错误的原因。下面是在C++中使用WriteFile函数的示例代码:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
HANDLE hFile = CreateFile(
"test.txt",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
std::cout << "CreateFile failed with error code: " << GetLastError() << std::endl;
return 1;
}
const char* data = "Hello, world";
DWORD bytesWritten = 0;
BOOL result = WriteFile(hFile, data, strlen(data), &bytesWritten, NULL);
if (!result)
{
std::cout << "WriteFile failed with error code: " << GetLastError() << std::endl;
CloseHandle(hFile);
return 1;
}
std::cout << bytesWritten << " bytes written to file." << std::endl;
CloseHandle(hFile);
return 0;
}
```
这段代码首先创建了一个文件句柄hFile,然后调用WriteFile函数写入数据,并判断函数的返回值,如果返回值为FALSE,则说明写入失败,此时可以调用GetLastError函数获取错误码。在上面的代码中,如果CreateFile或WriteFile函数返回错误,则会打印错误码并返回1,否则将写入的字节数打印出来并返回0。