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 に答える