最終更新:2008-07-07 (月) 05:23:25 (4415d)  

遅延バインディング
Top / 遅延バインディング

  • プロパティメソッド?の呼び出しをオブジェクトにバインドする処理が実行時まで延期されること。
  • ようするに型を指定しないでObjectで宣言しとくと実行時にCOMのほうででうまくやってくれる

遅延バインディングを行うには、対象となるオブジェクトで特別な COMインターフェイス IDispatch が実装されている必要がある

VB6ならVariant型、VB.NETならObject型の変数に何でも入れて、そこに入ったオブジェクトのメソッドなどを呼び出すために使われる

コンパイル時にオートメーション コードの完全性をチェックできなくなり、メソッドやプロパティの適切な呼び出しを支援する Intellisense 機能が提供されないという欠点もあります。

DLL呼び出し

Win32 APILoadLibrary関数とGetProcAddress関数により指定されたDLLの関数のアドレスは取得できますが、このアドレスで関数にアクセスする方法が.NETにはありません。そこでこの部分は他のDLLでやってもらうことにします。それがここではInvoke.dllのInvokeFunc?関数ということになります。ちなみにこのInvokeFunc?関数と同じ機能のものに、msjava.dllのcall関数がありますが、msjava.dllはWindows XPにはインストールされていないとのことです。

リンク