大昔のWindowsが無い時代、ほとんどのプログラムは行単位で入出力の動作を行うソフトでした。
Windowsの前身であるMS−DOSも同様でありコマンドを入力して命令を行い、プログラムを走らせる形式でした、またマシン特有の命令を使う場面を多々あり、互換性にも乏しい状況でした。
ここでは、現在でもWindowsに標準で搭載されているコマンドプロンプト(昔のMS−DOSの様な物)でプログラミングされていた頃の内容と、Windowsプログラミングの差をみてみることにしましょう。
// program001 #include <stdio.h> int main () { printf("C・C++が一番"); }
たったのこれだけです。
C言語には行の概念はありませんが、6行ほどです。
最初の
#include <stdio.h>
で標準入手力を行うためのヘッダを読み込み、
main
メイン関数があり、ここから出発して
printf("C・C++が一番");
で標準出力(ここではコンソール画面)へ内容を表示しているだけです。
Windowsプログラムと何が違うのか…
それは、コーンソールプログラムの単純さに対し、Windowsの膨大なAPI群(簡単に言えば関数の集合体)を操作する量と定義を行う量の多さの違いが1つに挙げられます。
コンソールプログラムは標準出力を定義するだけです。
Windowsプログラムは、Windowを表示するだけでもその色や大きさ、動作など性質を定義しなければなりません。
そこに大きな差が出てきます。
定義する量が圧倒的に違うといっても過言ではありません。
他の理由として、コンソールプログラムは最初から実行していき、最後の行で終了するのに対し、Windowsプログラムはユーザーが何かを指示するまで待っている(これをイベント駆動型と言います)という基本的な性質の違いにもあります。
Windowsプログラミングでは、このイベント駆動を行う部分も理解する必要があるし、記述しなくていはけません。