动态链接库(DLL)是由函数对象以及资源等组成的二进制文件,可以同时被多个进程或者程序使用。也就是说,这是其他应用程序在运行时可以调用的一组服务和函数的模块
DLL概述
一个DLL就是一些API。
动态链接库的特点有:
- 由于多个应用程序可以同时使用一个DLL,在内存中只需要载入一份DLL就可以,因此节省了内存
- 只有DLL中函数的类型和参数不变,即保持函数接口不变,在修改或者更新DLL后,不需要重新编译链接使用该DLL的应用程序
- DLL中的另一个优点是与构造DLL的变成语言无关。c#编写的DLL可以提供给其他语言,VB,VC等
但是,当用户创建使用动态链接库的应用程序时,必须讲DLL文件和应用程序的可执行文件一起分发
创建和使用DLL
新建一个解决方案,在弹出的对话框中选择“类库”,输入名字,点击“确定”这样,一个空的类库就建立好了,默认有一个空的类。
在这个类中加入一个静态方法
namespace DLLExample
{
public class Example
{
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
}
}
这时,我们选择顶部的菜单选择“生成”->“生成DLLExample”(DLLExample是我们创建的类库的名称)
这时,在我们的类库项目目录下的DLLExample\bin\Debug中,就可以找到以DLL为扩展名的文件,这就是著名的dll文件了!
接下来就是如何使用它了。
新建一个项目(DLLdemo),选中项目的“引用”,选择“增加引用”,弹出一个文件选择对话框,选中刚才生成的DLL文件
在文件中就可以使用“DLLExample.Example.add(x, y)”
来调用我们刚才生成的方法了。
static void Main(string[] args)
{
int x = 10, y = 120;
Console.WriteLine(DLLExample.Example.add(x, y));
double a = 22.2, b = 23.1;
Console.WriteLine(DLLExample.Example.add(a, b));
Console.Read();
}