http://love5an.livejournal.com/ ([identity profile] love5an.livejournal.com) wrote in [personal profile] love5an 2012-03-12 10:44 am (UTC)

Хуйню какую-то ты написал.

  • wchar_t - utf-16le, никакой ебли.

  • А что такое русский текст и как он представлен, им сначала объяснять не надо, да? Перед тем как они его начинают в программы добавлять вообще. Никакие CharToOem вызывать не надо, и setlocale тем более(кстати, да, надо было написать в постинге про эту смешную функции и извращения с ней в контексте линукса). Надо использовать UTF-16 функции. Всё! В винде нигде cp1251 нет, вообще. Там либо UTF-16(в т.ч. внутри ядра везде), либо ASCII-7, для функций, где юникод в принципе не поддерживается(компиляторы HLSL из DX например, и т.п.). Если не считать A-функции естественно, но их считать не надо, и использовать тем более, это вообще осталось только для обратной совместимости со всяким древним хламом.

  • WCHAR(он же wchar_t)

  • W. A-функций остались для обратной совместимости, еще раз! Их вообще использовать не надо. В новым API один только юникод. Да даже вон в OLE тоже один только юникод.

  • Нет, не нужно. Просто добавляешь префикс L к строкам.

  • А ты вообще в курсе что такое паскалевские строки? Это один байт на длину и байты на буквы. BSTR это _не_ паскалевские строки, это LPWSTR(UTF-16) плюс 32-битное машинное слово под длину. И кстати, что вместо такой структуры данных использовать, по-твоему? Нуль-терминированные строки чтоли? Спасибо, поржал.

  • Нахрена BOM для строк, живущих исключительно внутри программы и передающихся в системные функции? У LPWSTR Native Endianness.


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting