回答編集履歴

3

説明を追加

2019/11/10 11:37

投稿

Bull
Bull

スコア986

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

誤字修正

2019/11/10 11:37

投稿

Bull
Bull

スコア986

test CHANGED
@@ -1,4 +1,4 @@
1
- プロジェクトの文字コード Unicode であれば、`LPTSTR` は `wchar_t *` なので、メモリに 0xfe 0xff 0x30 0xc6 と読み込まれていれば、`lpUniText[1]`は 0xc630 になります。
1
+ プロジェクトの文字コード Unicode であれば、`LPTSTR` は `wchar_t *` なので、メモリに 0xfe 0xff 0x30 0xc6 と読み込まれていれば、`lpUniText[1]`は 0xc630 になります。
2
2
 
3
3
  読み込んだデータがビックエンディアンでも Windows マシンの CPU は リトルエンディアンなので、デバッガーではそのように表示されますね。
4
4
 

1

誤記修正

2019/11/10 11:28

投稿

Bull
Bull

スコア986

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