個人的な備忘録として。

Visual Studioでは、Unicodeとマルチバイト文字に両対応するためのTCHARという型がある。
文字列を扱う時には基本的にTCHARを使うことになるが、

"1byteずつファイルから読み込みたい"
といった場合に以下のようにしてはいけない。

TCHAR hoge;
ifs.read(hoge, sizeof(TCHAR));
こうしてしまうと、
"マルチバイト文字セットを使用する場合は1バイトずつ、Unicode文字セットを使用する場合は2バイトずつ読み込む"
といった処理になってしまう。

1バイトずつ読み込みたいなら使用文字セットに関わらず、charを使う必要がある。