Windows API: Должен ли я всегда использовать «W» варианты функций, или «A» тоже применимо? - PullRequest
0 голосов
/ 01 марта 2020

Я пишу программу на Python, и одной из моих функций является вызов функции GetWindowText для получения текста заголовка текущего окна. Я пока не слишком разбираюсь в API Windows, но я понимаю, что вариант функций "A" - это ANSI, а вариантов "W" - это широкий для MSDN.

Мой вопрос , я всегда хочу использовать 'W' в настоящее время, то есть GetWindowTextW , и почему именно, если так? Я провел некоторое исследование, но я не могу полностью понять, что не так с использованием «А». Это просто унаследовано сейчас, и программисты естественным образом перешли на «W», или это плохая практика, потому что это вызывает проблемы с вашим кодом?

1 Ответ

1 голос
/ 01 марта 2020

Всегда используйте W (Unicode) версии, если вы действительно не хотите по какой-либо причине (некоторые более поздние API не имеют даже версии A). Это задокументировано здесь: Условные обозначения для функциональных прототипов . Я цитирую:

Новые Windows приложения должны использовать Unicode, чтобы избежать несоответствий различных кодовых страниц и для простоты локализации. Они должны быть написаны с использованием обобщенных функций c и должны определять UNICODE для компиляции функций в функции Unicode. В тех немногих местах, где приложение должно работать с 8-битными символьными данными, оно может явно использовать функции для Windows кодовых страниц.

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