11

まず、これが100回以上回答された場合は、お詫び申し上げます。D'oh!

しかし、この基本的な質問に答える運がないので、私のsearch-fuは明らかにひどいです:

リソースはEXE/DLLにどのように保存されますか?UNICODE(UCS-2、Windowsネイティブ内部文字形式)として、またはリソースブロックのコードページを使用するマルチバイト文字として?

  • UNICODE文字列を自分のリソース(.rc)にどのように埋め込むのですか?
  • UNICODE(UCS-2)テキストをVS 2012内から言語文字列に挿入できますか?
  • WindowsはまだUCS-2を使用していますか、それとも内部でUTF16を使用していますか?

UNICODE文字列を.rc文字列テーブルに配置するための詳細なハウツーではなく、一般的な回答または詳細へのリンクを探しています。ありがとう!

4

3 に答える 3

7

WIN32のすべてのリソース文字列はUnicodeとしてコンパイルされます。詳細については、こちらをご覧ください。.rcスクリプト自体は、ANSI(ローカルコードページを使用)または適切なBOM(参照)を使用したUCS-2にすることができます。

于 2012-10-02T15:02:03.363 に答える
3

疑わしい場合は、そのヘクスを見てください。ここに、UTF16でのnotepad.exeのrcファイルの始まりがあります。

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.|
于 2012-10-02T15:00:22.200 に答える
2

ここに問題の良い記事があります。

ファイルがUTF-8https://devblogs.microsoft.com/oldnewthing/20190607-00/?p=102569であるという微妙なヒントがある場合でも、リソースコンパイラのデフォルトはCP_ACPです

于 2022-02-16T07:38:51.570 に答える