「Win32APIの招待」の編集履歴(バックアップ)一覧はこちら
Win32APIの招待 - (2010/01/06 (水) 06:40:45) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*Win32APIとはなんですか?
一言で言えば、&bold(){関数}です
Windows側の提供する、様々な機能はWin32APIに結晶されております。
例えばウインドウやシェル操作。
例えばファイルやレギストリ、プロセスレッドといったシステムに関わるもの。
こう言った類のものを扱うのがWin32APIです。
Win32APIはDLLという形で提供されています。
多くの言語には、Win32APIを使いやすくした独自のライブラリがあったりしますが、ABには無いような気がします。
#N88BASIC
で出てくる黒窓、各種命令も内部でWin32APIを使っていますがライブラリと呼ぶにはレベルが低いかと思います。
実はよくあるAPIはすでに宣言されていますが、完全ではないため、自分で宣言することもあろうかと思います。
Declareを使う方法と関数ポインタでやる方法とがあります。
Declare Sub/Function &italic(){関数名} [CDECL]Lib&italic(){"DLLの名称"} [Alias &italic(){別名}] (&italic(){引数リスト}) As &italic(){戻り値の型}
これは、VBからパクったやり方で、簡単なのですが、起動時に対象DLLがないと起動すらしないというパターンになります。
関ポ
Dim &italic(){関数名} As *Function(&italic(){引数リスト}) As &italic(){戻り値の型}
Dim hDLL As HINSTANCE
hDLL = LoadLibrary(&italic(){DLLの名前})
&italic(){関数名} = GetProcAddress(hDLL, "&italic(){関数名}")
宣言した関ポにLoadModuleとGetProcAddressを使う方法です。
起動時にDLLは必要なく、必要なときに読み込めるので柔軟です。
ただしCDECL呼び出し規約は使えません。
*Win32APIとはなんですか?
一言で言えば、&bold(){関数}です
[[Windows]]側の提供する、様々な機能は[[Win32API]]に結晶されております。
例えば[[ウインドウ]]やシェル操作。
例えば[[ファイル]]やレギストリ、プロセスレッドといった[[システム]]に関わるもの。
こう言った類のものを扱うのがWin32APIです。
Win32APIは[[DLL]]という形で提供されています。
多くの言語には、Win32APIを使いやすくした独自のライブラリがあったりしますが、ABには無いような気がします。
#N88BASIC
で出てくる黒窓、各種命令も内部でWin32APIを使っていますがライブラリと呼ぶには[[レベル]]が低いかと思います。
実はよくあるAPIはすでに宣言されていますが、完全ではないため、自分で宣言することもあろうかと思います。
[[Declare]]を使う方法と関数[[ポインタ]]でやる方法とがあります。
Declare Sub/Function &italic(){関数名} [CDECL]Lib&italic(){"DLLの名称"} [Alias &italic(){別名}] (&italic(){引数リスト}) As &italic(){戻り値の型}
これは、VBからパクったやり方で、簡単なのですが、起動時に対象DLLがないと起動すらしないというパターンになります。
関ポ
Dim &italic(){関数名} As *Function(&italic(){引数リスト}) As &italic(){戻り値の型}
[[Dim]] hDLL As HINSTANCE
hDLL = LoadLibrary(&italic(){DLLの名前})
&italic(){関数名} = GetProcAddress(hDLL, "&italic(){関数名}")
宣言した関ポにLoadModuleとGetProcAddressを使う方法です。
起動時にDLLは必要なく、必要なときに読み込めるので柔軟です。
ただしCDECL呼び出し規約は使えません。