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