2016-10-05 2 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. 내가 너라면 적어도 그의 수업에 대한 간단한 문서를 요구할거야. 닷넷이라면 Visual Studio의 객체 브라우저를 사용하여 dll의 내용 목록을 얻을 수 있습니다 – Mat

답변

0

실행 방법에는 .NET 기반 DLL과 .NET 기반이 아닌 DLL 두 가지가 있습니다.

비 .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); 
} 

이 나는 ​​경우에 나는 또한 방법을

관련 문제