0

我正在尝试通过 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); 

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

4

1 回答 1

0

几个问题:

  1. 使用关闭文件句柄CloseHandle()
  2. 的长度参数以WriteFile()字节为单位,但您正在指定字符。由于您使用的是宽字符,因此您需要将长度值乘以字符的大小。
于 2012-07-19T10:42:42.493 回答