Файлы ресурсов скомпилированы как кодовая страница UNICODE или ANSI?

Во-первых, мои извинения, если на это ответили сто раз! D’о!

Но мой поиск-фу, по-видимому, отстой, так как мне не повезло, отвечая на этот основной вопрос:

Как ресурсы хранятся в EXE / DLL? Как UNICODE (UCS-2, собственный внутренний символьный формат Windows) или как многобайтовые символы с использованием кодовой страницы блока ресурсов?

  • Как встраивать строки UNICODE в свои ресурсы (.rc)?
  • Можно ли вставить текст UNICODE (UCS-2) в языковые строки из VS 2012?
  • Windows все еще использует UCS-2 или использует UTF16 для внутреннего использования?

Я просто ищу общие ответы или ссылки на подробности, а не подробные инструкции для помещения строки UNICODE в таблицу строк .rc. Спасибо!

9

Решение

Все строки ресурсов в WIN32 скомпилированы как Unicode. Увидеть Вот для получения дополнительной информации. Сам скрипт .rc может быть ANSI (с использованием локальной кодовой страницы) или UCS-2 с соответствующей спецификацией (ссылка).

7

Другие решения

Если сомневаетесь, взгляните на гекс. Вот начало файла rc notepad.exe, в UTF16:

0002ed60  01 00 53 00 74 00 72 00  69 00 6e 00 67 00 46 00  |..S.t.r.i.n.g.F.|
0002ed70  69 00 6c 00 65 00 49 00  6e 00 66 00 6f 00 00 00  |i.l.e.I.n.f.o...|
0002ed80  a6 02 00 00 01 00 30 00  34 00 30 00 39 00 30 00  |......0.4.0.9.0.|
0002ed90  34 00 42 00 30 00 00 00  4c 00 16 00 01 00 43 00  |4.B.0...L.....C.|
0002eda0  6f 00 6d 00 70 00 61 00  6e 00 79 00 4e 00 61 00  |o.m.p.a.n.y.N.a.|
0002edb0  6d 00 65 00 00 00 00 00  4d 00 69 00 63 00 72 00  |m.e.....M.i.c.r.|
0002edc0  6f 00 73 00 6f 00 66 00  74 00 20 00 43 00 6f 00  |o.s.o.f.t. .C.o.|
0002edd0  72 00 70 00 6f 00 72 00  61 00 74 00 69 00 6f 00  |r.p.o.r.a.t.i.o.|
3

По вопросам рекламы [email protected]