使用Windows API写入txt文件

时间:2012-07-19 10:34:24

标签: c++ winapi writefile

我试图通过ATL应用程序将一些行写入txt文件。下面是我使用的代码片段:

HANDLE hFile = CreateFile(ofn.lpstrFile, 
            GENERIC_READ | GENERIC_WRITE,
            0,
            NULL, 
            CREATE_ALWAYS,
            FILE_ATTRIBUTE_NORMAL,
            NULL);

        DWORD dwBytesWritten = 0;

        std::list<CString> helpList;
        std::list<CString>::iterator it;
        helpList.push_back(L"First Line\r\n");
        helpList.push_back(L"Second Line");

        for(it=helpList.begin(); it!=helpList.end(); ++it)
            WriteFile( hFile, (*it).GetString(), (*it).GetLength(), &dwBytesWritten, NULL );

        CloseHandle(hFile); 

尽管一切正常,但最终没有任何内容写入文件。我应该在代码中更改什么?

1 个答案:

答案 0 :(得分:0)

几个问题:

  1. 使用CloseHandle()
  2. 关闭文件的句柄
  3. WriteFile()的长度参数以字节为单位,但您指定了字符。由于您使用的是宽字符,因此您需要将长度值乘以char的大小。