Как преобразовать проект Visual Studio из использования широких строк в обычные строки - PullRequest
7 голосов
/ 08 апреля 2009

Когда я создавал свой проект Visual Studio, он по умолчанию заставлял меня использовать широкие строки для всех функций, которые принимают строки символов. Например, MessageBox () принимает LPCWSTR, а не const char *. Хотя я понимаю, что он отлично подходит для многоязычных и портативных приложений, он совершенно не нужен для моего простого маленького приложения. Откровенно говоря, это больше боли - постоянно набирать TEXT () вокруг всех моих строк.

Есть ли опция компилятора, определение или настройка проекта, которые я могу изменить, чтобы исправить это в моем проекте Visual Studio?

Ответы [ 2 ]

16 голосов
/ 08 апреля 2009

Щелкните правой кнопкой мыши по вашему проекту -> Свойства, затем перейдите к следующему элементу дерева:

Свойства конфигурации -> Общие

Для Unicode выберите:
Использовать строки символов Unicode

Для обычного многобайтового выбора:
Использовать многобайтовый набор символов

Когда вы помещаете TEXT() или _T() вокруг своих строк, вы делаете его совместимым с обоими вариантами символьных строк. Если вы выберете Use multi-byte character set, то вам не нужно ничего вокруг ваших строк. Если вы выберете Use unicode character set, вам нужно как минимум L перед строками.

Выбрав Use Unicode Character Strings, вы также по умолчанию используете все Win32 API, оканчивающиеся на W. Пример: MessageBox отображается на MessageBoxW.

Когда вы выбираете Use multi-byte character set, вы также по умолчанию используете все Win32 API, оканчивающиеся на A. Пример: MessageBox отображается на MessageBoxA.

1 голос
/ 23 апреля 2009

Стоит отметить, что вы можете явно объявить строковые литералы широких символов в форме:

WCHAR *s = L"Hello Wide World.";

, который требует меньше нажатий клавиш, чем макросы TEXT () или _T (), но который создаст строку широких символов, даже если UNICODE не определен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...