строковые литералы Юникода в C ++ / CLI - PullRequest
1 голос
/ 24 ноября 2010

Допустим, у меня есть этот фрагмент кода, который возвращает строку CLR Unicode с кириллическими буквами

    property String^ EIDErrorDescriptionSr { 
       String^ get() 
       {
        switch(EIDErrorCode) 
        {
         case EID_OK: return "Операција успешно завршена";
...

Когда я читаю свойство в коде C #, ссылающееся на эту сборку, я получаю кучу "?" как если бы компилятор C ++ «сгладил» строку до однобайтовых символов.

Я сохранил исходный файл C ++ как UTF-8 (даже Unicode) и всегда получаю это предупреждение от компилятора для каждого не ANSI-символа:

предупреждение C4566: символ представлен универсальным символьным именем '\ u041E' не может быть представлен в текущем кодовая страница (1252)

Теперь, есть ли переключатель компилятора, чтобы заставить компилятор обрабатывать литералы как юникод? Кажется, я не могу его найти.

1 Ответ

3 голосов
/ 26 ноября 2010

Попробуйте строковый литерал Unicode: L"...".

...