WriteFile function C++

WriteFile function C++

本文关键字:C++ function WriteFile      更新时间:2023-10-16

我正在尝试使用WriteFile函数。我一直在研究这个例子

http://msdn.microsoft.com/en-us/library/ms900134.aspx

这里,传递给WriteFile的缓冲区是由ReadFile填充的。但我不想那样做。我只想写一个类似"ExampletexttestingWriteFile"之类的字符串。但我不确定这些参数应该有什么值。我试着在谷歌上到处找,但什么也找不到。有人知道我是怎么做的吗?

来自MSDN:

BOOL WINAPI WriteFile(
  __in         HANDLE hFile,
  __in         LPCVOID lpBuffer,
  __in         DWORD nNumberOfBytesToWrite,
  __out_opt    LPDWORD lpNumberOfBytesWritten,
  __inout_opt  LPOVERLAPPED lpOverlapped
);
  • 第一个参数是文件的句柄
  • 第二个参数是指向要写入的数据的指针。在你的情况下,它是字符串
  • 第三个参数是要写入的数据的长度。在您的情况下,它将类似于strlen(str)
  • 第四个参数是指向DWORD变量的指针,该变量将接收实际写入的字节数
  • 第五个也是最后一个参数目前可以为NULL

你这样使用它:

char str[] = "Example text testing WriteFile";
DWORD bytesWritten;
WriteFile(fileHandle, str, strlen(str), &bytesWritten, NULL);

如果WriteFile返回FALSE,则存在错误。使用GetLastError函数查找错误代码。

编写字符串的一个简单示例:

(这里的hOutFile是调用CreateFile的打开文件句柄):

{
    DWORD dwBytesWritten = 0;
    char Str[] = "Example text testing WriteFile";
    WriteFile( hOutFile, Str, strlen(Str), &dwBytesWritten, NULL );
}

编辑:查看MSDN函数定义中的每个参数的作用。