我是一名软件工程专业的学生,我们最近得到了一项任务,我们必须在C#中模拟酒店。作为模拟的扩展,教师提供了一个DLL,其中包含我们必须处理并应用于模拟的某些事件。
我们的问题是我们不知道如何从DLL中检索事件。我们试图在互联网上搜索它,但没有回答我们的情况。
DLL用作参考,我们可以调用DLL的某些部分,因此我们知道连接是正确的,但我们缺乏如何检索信息的知识。
是否有人建议某些网站了解该主题或解决问题?
另外,非常高兴stackoverflow存在,它帮助我解决了其他人已经遇到的很多问题。这是我的第一篇文章。
答案 0 :(得分: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);
}
如果我有一些DLL文件,我也会尝试这个,我也知道方法