В чем разница между функциями `A` и` W` в Win32 API? - PullRequest
27 голосов
/ 15 сентября 2011

В чем разница при вызове функции Win32 API с добавленным в конец символом A в отличие от символа W.

Я знаю, что это означает ASCII и WIDE CHARACTER или Unicode, но в чем разница между выходом или входом?

Например, если я вызову GetDefaultCommConfigA, заполнит ли моя структура COMMCONFIG строки ASCII вместо строк WCHAR? (Или наоборот для GetDefaultCommConfigW)

Другими словами, как узнать, в каком кодировке находится строка, ASCII или UNICODE, она должна соответствовать версии функции, которую я вызываю A или W? Правильно?

Я нашел этот вопрос , но я не думаю, что он отвечает на мой вопрос.

1 Ответ

33 голосов
/ 15 сентября 2011

Функции A используют строки Ansi (не ASCII) в качестве ввода и вывода, а функции W используют вместо этого строку Unicode (UCS-2 в NT4 и более ранних версиях, UTF-16 в W2K и более поздних версиях). Подробнее см. В MSDN .

...