「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 型で行うのが望ましいだろう。
 
== 参考リンク ==