「Windows API」の版間の差分
削除された内容 追加された内容
typo |
編集の要約なし |
||
1,219 行
==== 読み取ったファイルの文章表示 ====
===== 方法 =====
日本語の場合、ワイド文字型 wchar_t を使わないと、TextOutするのが困難になる。 char型でも不可能ではないかもしれないが、かなり面倒くさいので、ワイド文字型で説明する。
例として
1,291 ⟶ 1,292行目:
なぜ、このような wchar_t で宣言するという仕組みになってるかというと、
もちろん第一の理由は「マイクロソフト社がこういう風に作ってしまったから」であるが(マイクロソフト社の独自規格の問題なので)、
;理由1:
「Windowsではシステム内部の(ユーザーからは直接操作できない部分の)文字コードでは(自称)『Unicode』が使われており、
1,312 ⟶ 1,315行目:
;理由2:
もうひとつの理由として、英数字以外の文字の、バイト数の扱いがある。
本来、char型が1バイト型だとしたら、日本語文字などの2バイト文字は入らないハズであるが、しかし過去の経緯により、コマンドプロンプト画面用プログラムではchar型にも漢字を格納できてしまうし、printfなどで日本語もコマンドプロンプト画面に表示できてしまう。
しかし、TextOutなどWin32API専用の関数では、より厳密に型の管理をしているようであり、コマンドプロンプト画面とは違うようである。
TextOutなどWin32API専用の関数では、char型でなく wchar_t で宣言しないと、日本語を格納しづらい。
;結論:
上述のような様々な理由が合わさり、win32APIでは、日本語文字の格納は、wchar_t 型で行うのが望ましいだろう。
== 参考リンク ==
|