回答編集履歴
3
説明を追加
test
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
読み込んだデータがビックエンディアンでも Windows マシンの CPU は リトルエンディアンなので、デバッガーではそのように表示されますね。
|
4
4
|
|
5
|
+
「テ」は`UTF-16`では 0x30c6 ですが、これをメモリーに格納すると、リトルエンディアンの CPU では 0xc6 0x30 となります。メモリに 0x30 0xc6 と格納されていれば、0xc630 という文字になります。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
デバッガはメモリに読み込まれているデータがビッグエンディアンなんてことはわかりませんから、全てリトルエンディアンのデータとして扱います。
|
10
|
+
|
5
11
|
|
6
12
|
|
7
13
|
C言語の標準関数ではありませんが、VC ならば `_byteswap_ushort`関数を使えばバイトスワップができます。
|
2
誤字修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
プロジェクトの文字コード
|
1
|
+
プロジェクトの文字コードが Unicode であれば、`LPTSTR` は `wchar_t *` なので、メモリに 0xfe 0xff 0x30 0xc6 と読み込まれていれば、`lpUniText[1]`は 0xc630 になります。
|
2
2
|
|
3
3
|
読み込んだデータがビックエンディアンでも Windows マシンの CPU は リトルエンディアンなので、デバッガーではそのように表示されますね。
|
4
4
|
|
1
誤記修正
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
プロジェクトの文字コードは Unicode でしょうか。
|
2
|
-
|
3
|
-
`LPTSTR` は `wchar_t *` なので、メモリに 0xfe 0xff 0x30 0xc6 と読み込まれていれば、`lpUniText[1]`は 0xc630 になります。
|
1
|
+
プロジェクトの文字コードは Unicode であれば、`LPTSTR` は `wchar_t *` なので、メモリに 0xfe 0xff 0x30 0xc6 と読み込まれていれば、`lpUniText[1]`は 0xc630 になります。
|
4
2
|
|
5
3
|
読み込んだデータがビックエンディアンでも Windows マシンの CPU は リトルエンディアンなので、デバッガーではそのように表示されますね。
|
6
4
|
|