DOSプログラミングとWindowsプログラミングの違いとして、次のものが挙げられる。
- WinMain関数の存在
- イベントドリブン方式によるプログラミング
- DOSプログラミングには無いデータ型の利用
- 変数や関数の命名規則
WinMain関数とは、プログラム実行時に最も最初に実行される関数であり、DOSプログラミングでのmain関数に相当する。
プログラム実行中に何かのイベント(マウスのクリックやウィンドウサイズの変更、キーの挿入など)が発生したときに処理が行われる方式。イベントが起きるまで、プログラムは止まっている(ループしているわけではない)。
Windowsプログラミングでは、DOSプログラミングよりもさらに多くのデータ型や構造体を使うことができる。
以下、Windowsプログラミングで利用できるデータ型のうち、この授業や実習で使用するものを抜粋して紹介する。
型 意味 BYTE unsigned char(8ビット) WORD unsigned int(16ビット) DWORD unsigned long(32ビット) LONG long BOOL 論理値(int) これはほんの一例であり、ほかにも構造体などたくさんのデータ型が用意されている。
DOSプログラミングではプログラム自身が余り巨大にならなかったため、
- 変数名、関数名は小文字で宣言
- マクロ名は大文字で宣言
といったルールを慣習的に用いてコーディングが行われていた。しかし、Windowsプログラミングではプログラムが巨大になり、オブジェクト指向も取り入れられてきたため、新しいルールができてきた。
- 変数名、関数名は大文字・小文字を混在して宣言
- 変数名、関数名のみでデータ型が想像できるような名前を付ける
そして、名前付けの際に用いられるのが、下記に紹介する「ハンガリー記法」である。
フリフィックス 示しているデータ型 c char by unsigned char(BYTE) n shortまたはint i int x, y x座標、y座標を表すshort cx, cy 幅(x)、高さ(y)を表すshort b 論理型(BOOL)を表すint型 w unsigned int(WORD) l long(LONG) dw unsigned long(DWORD) fn 関数 s 文字列 sz ASCIIZ文字列 p ポインタ このルールで宣言した変数名、関数名は非常に長い文字列になるが、とりあえずMicrosoftが作成したDirectXのサンプルプログラムは、このルールで作成されている。