Win32APIとはなんですか?

一言で言えば、関数です
Windows側の提供する、様々な機能はWin32APIに結晶されております。
例えばウインドウやシェル操作。
例えばファイルやレギストリ、プロセスレッドといったシステムに関わるもの。
こう言った類のものを扱うのがWin32APIです。
Win32APIはDLLという形で提供されています。

多くの言語には、Win32APIを使いやすくした独自のライブラリがあったりしますが、ABには無いような気がします。
#N88BASIC
で出てくる黒窓、各種命令も内部でWin32APIを使っていますがライブラリと呼ぶにはレベルが低いかと思います。

実はよくあるAPIはすでに宣言されていますが、完全ではないため、自分で宣言することもあろうかと思います。

Declareを使う方法と関数ポインタでやる方法とがあります。

Declare Sub/Function 関数名 [CDECL]Lib"DLLの名称" [Alias 別名] (引数リスト) As 戻り値の型
これは、VBからパクったやり方で、簡単なのですが、起動時に対象DLLがないと起動すらしないというパターンになります。

関ポ
Dim 関数名 As *Function(引数リスト) As 戻り値の型
Dim hDLL As HINSTANCE
hDLL = LoadLibrary(DLLの名前)
関数名 = GetProcAddress(hDLL, "関数名")


宣言した関ポにLoadModuleとGetProcAddressを使う方法です。
起動時にDLLは必要なく、必要なときに読み込めるので柔軟です。
ただしCDECL呼び出し規約は使えません。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年01月06日 06:40