在c#中的Winform应用程序中使用dll
本文关键字:dll 应用程序 中的 Winform | 更新日期: 2023-09-27 18:29:41
我想知道如何在windows应用程序窗体中使用dll?
我想创建一种PhotoViewer,我必须将dll和GUI中的应用程序核心分开。因此,在我的GUI中,如果我单击给定的按钮,我将调用dll中相应的函数。
例如:
dll中允许加载图片的一种函数:
private void btn_browse_Click(object sender, System.EventArgs e)
{
try
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";
if (open.ShowDialog()==DialogResult.OK)
{
pictureBox1.Image = new Bitmap(open.FileName);
}
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}//End of the loading picture function
在这段代码中,问题是我的dll不知道gui中有一个图片框pictureBox1.图片!
最后,我不知道如何嵌套dll和gui。
感谢您的帮助;-)
要从动态链接库(DLL/.DLL)中为您在运行时决定的各种表单调用WinForm类(class MyForm : Form
)(我认为这是您的要求,但谁知道呢),您需要使用System.Reflection
并执行以下
if (bIfDllIsWinForm)
{
classInstance = Activator.CreateInstance(classType);
Form dllWinForm = (Form)classInstance;
dllWinForm.Show();
// Invoke required method.
MethodInfo methodInfo = classType.GetMethod(strSomeMethodName);
if (methodInfo != null)
{
object result = null;
result = methodInfo.Invoke(classInst, new object[] { dllParams });
return result.ToString();
}
else
{
// Else not a WinForm do something simalar.
}
您可以将类似的东西放入使用泛型的方法中,并在.dll.中传递要调用的相关方法名称
我希望这能有所帮助。