私のMFCプログラムはユニコード環境にあるため、以下のコードは正しく機能しません。
::WriteFile(hFile, TEXT("123456"), lstrlenW(TEXT("123456")), &dwByte, nullptr);
::CloseHandle(hFile);
結果は「123」で、これは「123456」であるはずです。
インターネットで、UnicodeBOMでこれを解決できることがわかりました。そこで、以下のようにコードを変更しました。
WORD Unicode = 0xfeff; // UNICODE BOM
::WriteFile(hFile, &Unicode, 2, &dwByte, nullptr);
::WriteFile(hFile, TEXT("123456"), lstrlenW(TEXT("123456")), &dwByte, nullptr);
::CloseHandle(hFile);
ただし、違いはありません。
それは単純な問題のようですが、私はこれに対する解決策を探すのに迷っています。
どんなアイデアでも大歓迎です。前もって感謝します。