alha na Saída de Fluxo Unicode C ++ do Windows
No momento, estou escrevendo um aplicativo que exige que eu chame GetWindowText em janelas arbitrárias e armazene esses dados em um arquivo para processamento posterior. Para encurtar a história, notei que minha ferramenta estava falhando no Battlefield 3 e reduzi o problema ao seguinte caractere no título da janela:http: //www.fileformat.info/info/unicode/char/2122/index.ht
ntão, criei um pequeno aplicativo de teste que faz o seguinte:
std::wcout << L"\u2122";
Baixo e eis que interrompe a saída na janela do console pelo restante do program
Por que o MSVC STL está sufocando nesse caractere (e eu assumo que outros) quando APIs como MessageBoxW etc o exibem perfeitamente?
Como posso imprimir esses caracteres no meu arquivo?
Testado no VC10 e VC11 no Windows 7 x6
Desculpe o post mal construído, estou arrancando meu cabelo aqu
Obrigado
EDITAR
Caso de teste mínimo
#include <fstream>
#include <iostream>
int main()
{
{
std::wofstream test_file("test.txt");
test_file << L"\u2122";
}
std::wcout << L"\u2122";
}
Resultado esperado: caractere '™' impresso no console e no arquivo. Resultado observado: o arquivo foi criado, mas está vazio. Nenhuma saída para o console.
Confirmei que a fonte que estou usando para meu console é capaz de exibir o caractere em questão e o arquivo está definitivamente vazio (tamanho de 0 bytes
EDITAR
depuração posterior mostra que os 'failbit' e 'badbit' estão definidos no (s) fluxo (s
EDITAR
Também tentei usar o Boost.Locale e estou tendo o mesmo problema, mesmo com o novo local imbuído global e explicitamente em todos os fluxos padrã