2016-10-05 13 views
-1

私はソフトウェア工学の学生ですが、最近私たちはC#でホテルをシミュレートする必要があります。シミュレーションの拡張として、教師は、処理してシミュレーションに適用する特定のイベントを含むDLLを提供します。C#DLLからの情報の取得(イベント)

私たちの問題は、DLLからイベントを取得する方法がわかりません。私たちはインターネット上で検索しようとしましたが、私たちの状況には答えはありませんでした。

DLLは参照として使用されており、DLLの特定の部分を呼び出して接続が正しいことを知ることができますが、情報を取得する方法についての知識が不足しています。

誰か特定のウェブサイトをおすすめしますか?

また、stackoverflowが存在することを非常にうれしく思っています。それは、他の人たちがすでに持っていた多くの問題を私に助けてくれました。これは私の最初の投稿です。

+0

方法を知っていた、そこからいくつかのDLLファイルを持っていた場合、私がしようとするものです管理されたdll(すなわち.net dll)を使用してください。http://stackoverflow.com/questions/7454938/how-to-retrieve-all-public-methods-from-dll –

+0

先生がどのように彼の実装を推測するのは難しいですdll。もし私があなただったら、私は彼に彼の授業の簡単な文書を少なくとも頼むことにしました。それが.net dllの場合は、Visual Studioのオブジェクトブラウザを使用して、dllの内容のリストを取得できます – Mat

答えて

0

.NETベースのDLL用と.NETベースのDLL用の2つの実行方法があります。

非.NET:

public static class DllHelper 
{ 
    [System.Runtime.InteropServices.DllImport("Dll1.dll")] 
    public static extern int func1(); 
} 

private void btnExec_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     DllHelper.func1(); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
} 

.NETベース:

try 
{ 
    System.Reflection.Assembly dll1 = System.Reflection.Assembly.LoadFile("Dll1.dll"); 
    if (dll1 != null) 
    { 
     object obj = dll1.CreateInstance("Func1Cls"); 
     if (obj != null) 
     { 
      System.Reflection.MethodInfo mi = obj.GetType().GetMethod("func1"); 
      mi.Invoke(obj, new object[0]); 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
} 

これは私がその場合、私はまた

関連する問題