質問

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

たとえば、一般的なCスタイルのエクスポートを含むアンマネージDLLがいくつかあります。 DLLへのパスを取得し、エクスポートされた名前に基づいて関数をP / Invokeします。実行時までDLL名がわかりません。

基本的に、.NETの LoadLibrary および GetProcAddress と同等のものは何ですか? (これらの関数を使用して、完全にアンマネージコードで同じ目標を達成する既存のコードがあります。)

役に立ちましたか?

解決

この記事では、役立つGetProcAddressのタイプセーフなマネージラッパーについて説明します。

http://blogs.msdn.com/ jmstall / archive / 2007/01/06 / Typesafe-GetProcAddress.aspx

他のヒント

これを行うには、LoadLibraryとGetProcAddressをP / Invokingし、 Marshal.GetDelegateForFunctionPointer

詳細については、この記事をご覧ください。

この Jonathan Swiftからのブログ投稿title .netから管理されていないdllを動的に呼び出す

1つのオプションは、適切なDLLと関数をメモリにロードし、パスに基づいてマネージコードにその関数を返すネイティブ関数を作成することです。このように、GetProcAddressトリックを自然に使用して、関数ポイントを返すことができます。次に、この関数にPInvokeし、デリゲートを取得して、適切なDLLを呼び出します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top