我试图通过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);
尽管一切正常,但最终没有任何内容写入文件。我应该在代码中更改什么?
答案 0 :(得分:0)
几个问题:
CloseHandle()
WriteFile()
的长度参数以字节为单位,但您指定了字符。由于您使用的是宽字符,因此您需要将长度值乘以char的大小。