Кто-нибудь знает кодировку не-ascii? - PullRequest
1 голос
/ 22 января 2020

'1' использовать два байта 20 и 0; '2' использует два байта 21 и 0;

'a' использует два байта 68 и 0; 'b' использовать два байта 69 и 0;

Мне неинтересно c ExtTextOutW из GDI32.dll (windowsapi) и читать из str (unsigned char); например, abc123 ... while: 68 0 69 0 70 0 20 0 21 0 ...;

BOOL ExtTextOutW
 (
  HDC         hdc,
  INT         x,
  INT         y,
  UINT        flags,
  const RECT* lprect,
  LPCWSTR     str,
  UINT        count,
  const INT*  lpDx
 )

1 Ответ

2 голосов
/ 22 января 2020

когда flags = 0x10;

Массив lpString ссылается на массив, возвращаемый из GetCharacterPlacement, и должен анализироваться GDI напрямую, поскольку дальнейшая обработка языка c не требуется. Индексирование глифа применимо только к шрифтам TrueType, но этот флаг можно использовать для растровых и векторных шрифтов, чтобы указать, что дальнейшая языковая обработка не требуется, и GDI должен обрабатывать строку напрямую. Обратите внимание, что все индексы глифов являются 16-битными значениями, хотя предполагается, что строка является массивом 8-битных значений для растровых шрифтов. Для ExtTextOutW индексы глифов сохраняются в метафайл. Однако для отображения правильных символов метафайл должен воспроизводиться с использованием того же шрифта. Для ExtTextOutA индексы глифов не сохраняются.

...