Тема: Робота з wchar_t, як записати у файл
Якщо використати той самий код для запису wchar_t у файл що і для char, то у файл не будуть записуватися Unicode символи. Якщо вказати що це бінарний файл і першим символом записати 0xFEFF (Byte order mark), то потрібно ще вказувати буфер, тому що у файл взагалі нічого не запишиться.
Наприклад:
Запис у файл послідовності символів char.
Тут не потрібно вказувати буфер. Запис відбувається за допомогою класу wofstream 
char sometext[] = "text";
    char* ref_for_purity_of_experiment = sometext;
    wofstream fs;
    fs.open(
        "t.txt",
        std::wofstream::in |
        std::wofstream::out |
        std::wofstream::app
        );
    fs << ref_for_purity_of_experiment << ";\r\n";
    fs.close();Запис у файл послідовності символів wchar_t .
Тут потрібно вказувати буфер. Запис відбувається за допомогою класу wofstream 
wchar_t sometext[] = L"text";
wchar_t * ref_for_purity_of_experiment = sometext;
wofstream fs;
    fs.open(
        "t.txt",
        std::wofstream::in | 
        std::wofstream::out | 
        std::wofstream::app | 
        std::wofstream::binary
        );
    int arrSize = 128;
    wchar_t *buffer1 = new wchar_t[arrSize];
    fs.rdbuf()->pubsetbuf(buffer1, arrSize);
    fs.put(0xFEFF);
    fs << ref_for_purity_of_experiment << ";\r\n";Питання: можна записувати wchar_t до файлу без явного вказання буферу, так як звичайний текстовий файл ? Якщо можна, то як ?
std::string - не підходить. Я роблю DLL для сторонньої програми, і якщо я приймаю std::string то програма крашиться