LoadLibrary を介して C# dll をロードしようとしています。正常にロードできます。この dll で定義されているメソッドと型を使用できるように、この dll に GetProcAddress を使用する方法を教えてください。
前もって感謝します!!!
編集
1 - この問題の最善の方法は COM です。AssemblyInfo
アセンブリを COM ( ) として公開するように設定する必要がありますComVisible(true)
。このマイクロソフトの提案を参照してください。
2 - bitlocker を備えた Windows Vista 以降を使用している場合は、BitLocker
便利です。
3 - ただし、COM を使用できない場合は、code-project でこれを確認してください。
このリンクによると:
http://social.msdn.microsoft.com/Forums/br/vcmfcatl/thread/cadd6150-de10-47c5-bd5c-a356741c36b3
マネージド DLL にはエクスポートがないため、GetProcAddress は常に NULL を返します。
そうは言っても、アンマネージ コードからマネージ コードにアクセスするためのより良い方法があります。アンマネージ アセンブリの周りに C++/CLI ラッパーを作成する必要があります。その後、アンマネージ ラッパー関数内からマネージ呼び出しをエクスポートできます。
クラス内のマネージド関数の 1 つA
が
public static void Foo() {}
C++ コードがあるかもしれません:
DLLEXPORT void FooThunk() {
A::Foo();
}
PS: 誰かが C++/CLI に慣れている場合は、私の回答を編集して、そのようなラッパーのより良い例を含めてください。