由于我的 MFC 程序处于 unicode 环境,因此下面的代码无法正常工作。
::WriteFile(hFile, TEXT("123456"), lstrlenW(TEXT("123456")), &dwByte, nullptr);
::CloseHandle(hFile);
结果是“123”,应该是“123456”
我在互联网上发现 Unicode BOM 可以解决这个问题。所以我修改了我的代码,如下所示。
WORD Unicode = 0xfeff; // UNICODE BOM
::WriteFile(hFile, &Unicode, 2, &dwByte, nullptr);
::WriteFile(hFile, TEXT("123456"), lstrlenW(TEXT("123456")), &dwByte, nullptr);
::CloseHandle(hFile);
但是,它没有任何区别。
似乎这是一个简单的问题,但我迷失了寻找解决方案。
任何想法都会受到欢迎。提前致谢。