I am beginner! - Windows APIを初めて使う方たちへ(ページ1)

Windows APIを使うといろいろできる!

Windows APIというのを使うと何ができるのかというのをまとめてみました。
大体次のようなことができます。
・1:Windowsが備えている数々の機能を使うことができる
・2:処理の高速化が望める
・3:プログラミングの自由度が増す


他にもいろいろありますが、共通しているのは上の3つでしょう。

1:Windowsが備えている数々の機能を使うことができる
Windowsはもともと数々のAPIの上に成り立っています。
最も基本的に重要なのは「Kernel32.dll」でしょう。(まぁそんなものだと覚えておいてください)
そのWindowsの機能を使うわけですから、VBでは実現できない様々なことができます。
具体的に何ができるのかは、これから少しずつやっていきましょう。

2:処理の高速化が望める
例えば、PictureBoxには「PSet」というメゾットがあります。
これはピクチャーボックスの上の指定した座標1点を塗ることができます。
Windows APIにはSetPixel()という関数があります。
これを使うと、PSetと同じことができますが、約4倍のスピードで同じ処理ができます。

3:プログラミングの自由度が増す
これはもう説明は要らないでしょう。
Windowsの機能を使うので、VBでは実現できないような様々なことができます。


しかし、必ずしも良いことばかりではありません。
APIを使うと、簡単に使えるように設計されているVBの関数とは違い
様々なエラーを些細なことで起こすようなこともあったり、
コーディングの量も関数によっては莫大に増えます。

普通に使う分には、必要なところに適度に使うのがよいでしょう。

そもそもAPIとはなんだ?

先ほどから出てくる「API」とはなんでしょう?
APIとは「Application Programming Interface」の略です。
(Application Program Interfaceと定義する人もいます)

簡単に要約すると、「プログラムを作るときに必要な機能を提供してくれるインターフェース」
くらいの意味になります。
コンピュータの心臓であるCPUは「0」と「1」で動いています。
しかし、実際にプログラムを作るときにそんなものを気にしていてはとても
プログラムなど作ることはできません。(私みたいな物好きは別ですが。)

そこで、一つの機能をまとめたのがAPI関数です。
さらにそれをいくつもまとめたのが、「DLLやOCX」になります。
一般的にはこれらを総称して、APIと呼んでます。

こうやって一つの形にまとめると、プログラマはそれらを呼び出すだけで
簡単に機能を実現できる事になります。
(さらにそれをまとめたのがVBの機能などです)



簡単なイメージとしては「作られたサブルーチン」とでも思えば、ぴったりでしょう。

WinAPI = Win32ではない!

前置きが長くてすみません。とりあえず、あと一つだけ。
よくWindowsのプログラムを作っていると「Win32」というのを耳にします。
Win32というのは「Windows 32bit」の略ですが、じゃあ、Win32以外はあるのでしょうか?

答えはあります。Windows95が世の中に発売されてからWindowsは急速な広がりを見せましたが
それ以前は、Windows1.0から3.2(3.2は中国語版らしい。私は3.1までしか見たことないけど。)まであります。

そのころのWindowsは16bitでした。(3.1のころは混ざっていました。)
そのころのAPIはWin16 APIと呼んでいます。まだWindowsXPの中にもそれらの関数は
サポートされています。(DLLではなくなっていますが)

また、Win64というのもあります。
Windows 64bitですが、SDKではWindows2000ごろから解説が徐々に出始めました。
今はAMDのCPUが唯一Windowsが動く64BitCPUを出してます。
Microsoftに行けば、WindowsXP 64BitEditionを無料でダウンロードできます。

次に発売されるWindows LongHornは64Bitです。たしか。

とはいえ、まだまだWin32が主流であり、一般的にはWindows API = Win32とされてます。

当サイトでもとりあえずはWinAPI = Win32で扱っています。