2011-02-01 2 views

ответ

4

Нет, это означает, что TCHAR отображается wchar_t и все функции, которые принимают TCHAR или LPTSTR аргументы преобразуются в их разновидностях Unicode. Например, CreateWindow отображается на CreateWindowW, а не на CreateWindowA.

И это совершенно не связано с архитектурой процессора. Вы можете писать программы Unicode и Multibyte для 32 или 64-разрядных платформ.

Если вы хотите построить для x64, вам нужно перейти к добавлению другой платформы в Configuration Manager. Вот how-to от Microsoft.

+0

Могу ли я явно использовать CreateWindowW без установки кодировки символов? – user23281

+0

Да, @User. Вы можете явно вызвать любую нужную функцию. Параметр IDE и макросы, которые он определяет, просто управляют режимом * по умолчанию * API, который вы получаете, когда не указываете ничего другого. –

+0

Да. Но подсистема 'TCHAR' предназначена для того, чтобы сделать переключение между' char' и 'wchar_t' практически без проблем. Тем не менее, можно смешивать '* A' и' * W' в одном приложении в любой пропорции. – detunized

4

№ Юникод - это кодировка символов, а не мера бит процессора. Вы можете писать 64-битный код без использования Unicode, и вы можете писать 32-разрядный код при использовании Unicode. Ни один из них не требует другого. Вы можете использовать их вместе, если хотите. Вы также можете использовать их.

+1

Я поддерживаю этот ответ. По существу, нет никакой связи между кодировкой символов и размером машинного слова. –