c# 将winform窗体应用程序编译成dll

本文详细介绍了如何将C#的WinForm窗体应用程序编译成DLL,并在其他项目中调用该DLL。首先,你需要将项目的输出类型从“Windows应用程序”更改为“类库”,然后重新编译生成DLL。在新项目中,通过添加引用、导入命名空间,即可调用并显示该DLL中的窗体。这种方法允许你在不同项目间复用已有的窗体功能。
摘要由CSDN通过智能技术生成

c# 将winform窗体应用程序编译成dll

C#调用第三方Exe程序可以转换成对dll的调用,上一篇介绍了C#中窗体应用程序对第三方Exe文件的调用

  1. 建立一个winform窗体工程

  2. 编辑窗体及功能

  3. 运行、调试

  4. 在“解决方案资源管理器”中 ,选中项目,鼠标右键“属性”
    在这里插入图片描述

  5. 在弹出对话框中选中“应用程序” ,如图所示:
    在这里插入图片描述

  6. 找到“输出类型”,下拉框中的值应该是“Windows 应用程序”,将其改成“类库”
    在这里插入图片描述

  7. 设置完成以后,重新编译就会生成dll文件。

  8. 编译好的dll就在工程目录下bin\Debug 或者 bin\Release。

调用dll时需要知道的:

  • MyWinformDll.dll路径
  • 窗体的命名空间MyWinformDll(namespace)
  • 窗体的类名MyWinform

新窗体程序中调用dll
1.将生成的MyWinformDll.dll拷贝到新窗体程序的执行目录下;
2.找到引用,鼠标右键,在弹出对话框中选择“添加引用”
在这里插入图片描述
3.将步骤1中的dll添加到项目中
4.在新的窗体程序中添加命名空间

   using MyWinformDll;

5.与其他类一样进行调用

MyWinform myWinform = new MyWinform();
SetParent(myWinform .Handle, this.Handle);//这样设置可以实现嵌入到主窗体中
IntPtr intPtr = myWinform .Handle;
MoveWindow(intPtr, 0, 30, this.Width - 18, this.Height - 50, true);//移动指定位置
myWinform.Show();
//myWinform.Hide();//隐藏

要在C# Winform中嵌入基恩士应用程序exe,可以使用Process类来启动应用程序,并将其嵌入到窗体中。以下是实现步骤: 1. 打开Visual Studio中的Winform项目,并在工具箱中添加一个Panel控件。 2. 在代码中使用Process类的Start方法来启动基恩士应用程序exe,并将其嵌入到Panel控件中。 3. 设置基恩士应用程序exe的属性和方法,以便与其进行交互。 以下是代码示例: ```csharp using System.Diagnostics; using System.Windows.Forms; namespace WinformApp { public partial class Form1 : Form { private Process process; public Form1() { InitializeComponent(); // 启动基恩士应用程序exe process = new Process(); process.StartInfo.FileName = "KeenShine.exe"; process.StartInfo.Arguments = ""; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.Start(); // 将基恩士应用程序exe嵌入到Panel控件中 process.WaitForInputIdle(); SetParent(process.MainWindowHandle, panel1.Handle); // 设置窗体大小和位置 process.StartInfo.WindowStyle = ProcessWindowStyle.Normal; process.WaitForInputIdle(); MoveWindow(process.MainWindowHandle, 0, 0, panel1.Width, panel1.Height, true); // 设置基恩士应用程序exe的属性和方法 process.StandardInput.WriteLine("Command1"); var result = process.StandardOutput.ReadLine(); // ... } protected override void OnFormClosing(FormClosingEventArgs e) { base.OnFormClosing(e); // 关闭基恩士应用程序exe process.Kill(); } [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll")] private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint); } } ``` 在上面的代码中,panel1是Winform中的一个Panel控件,用来显示基恩士应用程序exe。你需要根据实际情况设置基恩士应用程序exe的属性和方法。需要注意的是,在关闭窗体时,需要使用Process类的Kill方法来关闭基恩士应用程序exe。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值