在做项目的时候往往是一个人负责自己的一块功能区,最后集成一个大界面的时候需要再界面中调用大家的子界面。这个项目里因为初期大家没有经验,因此在创建子界面的时候没有选择类库,而是窗口界面。下面记录一下如何将窗口类子界面生成dll并调用。
软件版本:VS2022
一些关于dll的小知识点
动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。
动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL调用来完成一定操作的函数(方法。注:C#中一般称为“方法”),但这些函数不是执行程序本身的一部分,而是根据进程的需要按需载入,此时才能发挥作用。
DLL只有在应用程序需要时才被系统加载到进程的虚拟空间中,成为调用进程的一部分,此时该DLL也只能被该进程的线程访问,它的句柄可以被调用进程所使用,而调用进程的句柄也可以被该DLL所使用。在内存中,一个DLL只有一个实例,且它的编制与具体的编程语言和编译器都没有关系,所以可以通过DLL来实现混合语言编程。DLL函数中的代码所创建的任何对象(包括变量)都归调用它的线程或进程所有。
1.生成dll
首先打开子界面,右键【项目名称】--【属性】
【应用程序】-【输出类型】-【类库】
这样设置之后,在点击【启动】输出的就不是界面啦,就是一个dll,会弹出这个窗口
这个是完全没有问题的哦,说明我们确实生成的是一个dll,而不是报错信息。,
下面就是去哪里找它的问题了,项目地址在这里↓
找到这个项目文件夹下的 bin-debug 文件夹,里面出现了一个与项目同名的dll文件,就是它了
2. 调用dll
这里我们集成的界面项目名叫 integ_pif ,把刚才生成好的dll放到这个路径下
打开集成界面的项目,右键【依赖项】-【添加项目引用】
点击【浏览】,找到路径下刚复制进去的dll文件,点击【添加】
这时候这个位置就会出现那个dll文件了
注意,如果之前已经有这个dll了,更新之后再放进去需要先把它delete删掉,然后重新载入一下
添加进dll之后还需要对程序进行一些配置
打开 Form1.cs ,在开头添加一下引用
至此就完成啦,以后这个集成界面就可以使用这个dll了!
下面简单记录一下最简单的一种调用示例:在集成界面上放置一大块panel,点击一个按钮(button1)就在这个panel(panel2)中显示子界面(KUKA_Motion)
继承界面的大致布置以及对应的元件名称如下图。
在Form1.cs中添加程序
(双击button1即可,这个程序段位于namespace integ_plf 与 public partial class Form1 : Form 括号中,与public Form1() 同级 ,因为我有时候总搞不清它的位置,所以在这里记录一下:)
private void button1_Click(object sender, EventArgs e)
{
//界面显示
KUKA_Motion.Form1 kuka = new KUKA_Motion.Form1();//**实例化子界面**
panel2.Controls.Add(kuka);//在panel2中添加子界面
kuka.Show();//在panel2显示
}
好咯,现在就能实现了上述的功能了,完结撒花❀
下一篇写一下如何在集成界面合理显示子界面,以及显示的更加美观的一些tips,目测对我来说是个难题,希望自己快快进步,成为一个合格的工程师(帕塔亚努力表情