1

C# で、 signature を使用して外部 DLL のメソッドを呼び出したいのですbool IsValid(string)が、dll の名前が入力から文字列として取得されています。

どうやって:

  1. 外部メソッドを呼び出しますか?

  2. IsValidメソッドを実装しますか?

4

3 に答える 3

3

最初の質問について、私はこの答えを見つけました:

string path = ApplicationMapPath+ objDLLName + ".dll";
System.Reflection.Assembly a = System.Reflection.Assembly.LoadFile(path);
Type t = a.GetType("<namespace>.<Class>");
object instance = a.CreateInstance("<namespace>.<Class>");

MethodInfo m = t.GetMethod("<FuncName>");// Call the method
object res = m.Invoke(instance, new object[] { txtBox.Text }); // Get the result here
于 2012-05-02T08:18:06.893 に答える
2

外部 DLL はマネージまたはアンマネージですか?

マネージド DLL の場合Assembly.LoadFromは、それを読み込んで、その中のクラスから関数を呼び出すことができます。

アンマネージ DLL の場合、@lcfseth のリンクが正しい方法です。

于 2012-05-01T20:11:10.317 に答える
1

私が考えることができる唯一の方法は、Win32 ライブラリと特殊な LoadLibrary API 関数を使用することです。開始するのに役立つリンクは次のとおりです。

http://www.codeproject.com/Articles/27298/Dynamic-Invoke-C-DLL-function-in-C

于 2012-05-01T09:39:17.363 に答える