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.

Foi útil?

Solução

Experimente um unicode string literal: L"...".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top