BSTR - широкие строки char (wchar_t). У вас не должно возникнуть проблем с записью их в файл с использованием функций общего назначения, таких как WriteFile
. Единственная проблема, с которой вы столкнетесь, - это просмотр файла в текстовом редакторе. Чтобы решить эту проблему, вы должны поместить Byte Order Mark (BOM) в начале файла, прежде чем писать фактический контент. Это будет указывать содержимое файла в текстовом редакторе. Обратите внимание, однако, что вы должны знать об этом при чтении содержимого файла - он будет содержать эту спецификацию перед текстом.
Вы можете сделать что-то вроде этого (не проверено):
unsigned char BOM[2] = {0xFF, 0xFE};
WriteFile(fh, BOM, 2, &numbytes, NULL);
сразу после создания файла и перед записью содержимого BSTR.
Позднее добавление, просто для пояснения моего первого предложения: BSTR
не является точно массивом wchar_t
с, но ради записи его содержимого в файл, это нормально относиться к нему как таковой. Подробнее об этом читайте Полное руководство Эрика по семантике BSTR .