【问题标题】:WriteFile function C++写文件函数 C++
【发布时间】:2012-02-07 10:52:55
【问题描述】:

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

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

这里传递给 WriteFile 的缓冲区是从 ReadFile 填充的。但我不想那样做。我只想写一个像“Example text testing WriteFile”之类的字符串。但我不确定参数应该有什么值。我试过在谷歌上四处寻找,但找不到任何东西。有人知道我是怎么做到的吗?

【问题讨论】:

    标签: c++ windows winapi


    【解决方案1】:

    来自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函数查找错误码。

    【讨论】:

      【解决方案2】:

      写字符串的简单例子:

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

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

      编辑:检查MSDN 函数定义,了解每个参数的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        • 2019-03-18
        • 2010-10-01
        • 1970-01-01
        • 2019-03-11
        相关资源
        最近更新 更多