Чтобы диагностировать проблему, я бы проверил, какие значения эти символы кодируются, как во время компиляции. С кодом вроде:
wchar_t *x = L"текст";
for(int i=0; x[i] != L'\0'; i++)
{
printf("%02x\n", x[i]);
}
Вы можете изменить это "%02x"
на "%04x"
, если sizeof(wchar_t) == 4
.
Если значения отличаются, вероятно, это проблема времени компиляции, когда компиляторы используют разные кодировки для интерпретации исходных файлов.
Я бы не использовал кодовые точки> U + 007F в исходных файлах, выводил строки в файлы ресурсов и загружал их, используя соответствующую кодировку. Если хотите, вы можете попробовать использовать escape-последовательности Unicode (например, L"\u0442\u0435\u043a\u0441\u0442"
).