2009-07-29 17 views
7

.NETからアンマネージコードを動的にP/Invokeする最良の方法は何ですか?DLLを動的にP /呼び出す

たとえば、複数のアンマネージDLLの間に共通のCスタイルの書き出しがあります。 DLLへのパスを取得し、エクスポートされた名前に基づいて関数を呼び出します。私は実行時までDLL名を知らないでしょう。

基本的には、LoadLibraryGetProcAddressの.NETに相当するものは何ですか? (私は、これらの関数を使用して同じ目標を達成するために、完全にアンマネージドコードを使用する既存のコードを持っています)。

答えて

0

適切なDLLと関数をメモリにロードし、その関数をパスに基づいてマネージコードに戻すネイティブ関数を作成することをお勧めします。この方法で、GetProcAddressトリックを自然に使用して関数点を返すことができます。この関数にPInvokeして、適切なDLLに呼び出すDelegateを取り戻すことができます。

2

動的

.NETからアンマネージドDLLを呼び出すジョナサン・スウィフトのタイトルから thisブログ記事を参照してください