タグ

ブックマーク / wiz-code.net (1)

  • ネイティブDLLを遅延バインディング(動的P/Invoke) - うぃずのひとりごと

    VB6.0時代に、どうしてもできないことがあった。それは、ネイティブDLLの遅延バインディング。 VBにはAPIを呼ぶためのDeclare宣言があったけど、呼び出すDLLはコーディングの段階で固定されてしまう。つまり、ビルドが完了した時点で、呼び出すDLLが決まってしまうということ。当然、アプリケーションを動かしている中で変更することはできない。一般に「動的な呼び出し」が出来ないのである。 .NET 2.0になって、ようやくその枷(かせ)が外れたのだけど、どのサンプルを見ても、LoadLibraryやらFreeLibraryやら、いろいろと準備と後始末に忙しい。 そこで、.NETによるネイティブDLLの遅延バインディングはどこまで簡略化できるのか。 試してみた。 C#のコンソールアプリケーションで、事前バインディングしていないWinAPIのMessageBox関数を呼び出す。以下がそのコー

  • 1