literais de string unicode em c ++/cli
-
27-09-2019 - |
Pergunta
Digamos que eu tenha esse fragmento de código que retorna uma string CLR Unicode com letras cirílicas
property String^ EIDErrorDescriptionSr {
String^ get()
{
switch(EIDErrorCode)
{
case EID_OK: return "Операција успешно завршена";
...
Quando li a propriedade no código C# referenciando esta assembléia, recebo um monte de "?" Como se o compilador C ++ "achatasse" a corda em chars de um byte.
Eu salvei o arquivo de origem C ++ como UTF-8 (até Unicode) e sempre recebo esse aviso do compilador para todos os personagens não-Ansi:
AVISO C4566: O caractere representado pelo nome universal-nomes ' u041e' não pode ser representado na página de código atual (1252)
Agora, existe um comutador do compilador para forçar o compilador para tratar os literais como unicode? Não consigo encontrar um.
Solução
Experimente um unicode string literal: L"..."
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow