Почему мое простое приложение C ++ GUI показывает окно сообщения на китайском языке?

О, как для всей вещи (LPCWSTR): она не скомпилируется, если я не вставлю их. Она выдала мне это сообщение об ошибке:

Ошибка 1 ошибка C2664: «MessageBoxW»: невозможно преобразовать параметр 2 из «const char [22]» в «LPCWSTR»

8
задан Community 8 February 2017 в 14:19
поделиться

3 ответа

Положите L инфронт вашей строки, чтобы сделать его широкой строкой. L «До свидания жестокого мира»

, тогда вам не понадобится актеры.

Вы также можете использовать макрос текста («)), который создаст строку Unicode или строку ASCII в зависимости от настроек конфигурации.

Причина, по которой вы видели китайский язык, заключается в том, что почтовый ящик интерпретировал строку ASCII в виде Unicode.

20
ответ дан 5 December 2019 в 06:23
поделиться

У вас уже есть свой ответ, но это хороший пример того, почему вы должны использовать избегать отсрочков. Да, актерский актерс получит ваш код для компиляции, но если вы не понимаете, что происходит, скорее всего, вы только что создали ошибку.

В целом мои 3 правила литья:

  1. не бросают (исправьте код).
  2. Не бросайте (отрегулируйте свои типы, чтобы остановить нуждаться в литье)
  3. Хорошо, отливьте, но пересмотрите ваше решение завтра и посмотрим, сможете ли вы сделать # 1 или # 2.
6
ответ дан 5 December 2019 в 06:23
поделиться

Мое сильное предположение состоит в том, что ваш исходный файл имеет неправильное кодирование. Можете ли вы проверить, сохраняется ли он в некотором аромате Unicode, скорее всего, UTF-16?

0
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: