C# で、 signature を使用して外部 DLL のメソッドを呼び出したいのですbool IsValid(string)
が、dll の名前が入力から文字列として取得されています。
どうやって:
外部メソッドを呼び出しますか?
IsValid
メソッドを実装しますか?
最初の質問について、私はこの答えを見つけました:
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
外部 DLL はマネージまたはアンマネージですか?
マネージド DLL の場合Assembly.LoadFrom
は、それを読み込んで、その中のクラスから関数を呼び出すことができます。
アンマネージ DLL の場合、@lcfseth のリンクが正しい方法です。
私が考えることができる唯一の方法は、Win32 ライブラリと特殊な LoadLibrary API 関数を使用することです。開始するのに役立つリンクは次のとおりです。
http://www.codeproject.com/Articles/27298/Dynamic-Invoke-C-DLL-function-in-C