Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ответьте пж, срочно

基里尔 谢尔巴克 Ученик (98), открыт 1 неделю назад
Зачем нужен макрос `_TEXT()`?
1 ответ
Def Просветленный (37469) 1 неделю назад
В WinAPI приложение может быть скомпилировано либо с 8-битными кодировками (мультибайт), либо с 16-битным уникодом. Сишные строки будут при этом инициализироваться в исходнике либо как
 CHAR var[] = "Строка"; // Для 8-битной локали 
либо как
 WCHAR var[] = L"Строка"; // Для UTF-16 
При этом при передаче строк в функции, расчитанные на работу с другой локалью будет возникать ошибка. Для решения используют макросы, одним из которых является _TEXT() - все это дело автоматически преобразовывает используемые строки и функции в нужный вид,в зависимости от того, что выставлено в свойствах проекта, а сам исходник пишется следующим образом:
 TCHAR var[] = _TEXT("Строка"); // Автовыбор режима кодировки 
Здесь _TEXT подставит префикс L, если он нужен и не будет этого делать в мультибайте
Похожие вопросы