前言
由于项目对FANUC、西门子、华中数控等设备有二次开发需求,所以ASP.NET MVC开发只能暂时交给其他同仁了,我则主攻设备开发。之前有用VC写过FANUC的开发,但是现在平台改成ASP.NET了所以想尝试用C#来写,毕竟还有那么多设备需要开发,用C#写会比C/C++简单高效些(这里我用Visual Studio 2015开发)。
动态链接库
动态链接库(Dynamic Link Library,缩写为 DLL)是Windows操作系统中实现共享函数库的一种方式,这样一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序调用,DLL是一个不可执行的二进制文件,也不接收消息。里面集成了很多执行函数,只有当其它模块调用该动态链接库中的函数时才会被执行,不需要在运行之初加载所有代码,这样可以减小程序运行时占用的内存。而且动态链接库是经过预先编译处理的,别人在使用你编写的DLL文件时并无法知晓函数的实现逻辑,可以有效的保护源码不被泄露。
动态链接库优点
1,不用预先加载,随用随调,节省内存占用;
2,DLL文件独立,更新不影响程序运行,提高了可维护性和可扩展性;
3,支持其他语言调用,跨平台可移植性强;
4,可独立开发测试、耦合度低。
如何新建dll文件
打开Visual Studio 2015程序点击新建项目,在Visual C#中选择“类库”,输入类库名(默认ClassLibrary1)后确定。
编写方法函数
创建完之后我们得到一个空间名为ClassLibrary1的类文件,在这个类中我们就可以来写我们的方法函数了,这里写个简单的输出语句“Hello DLL”。相比而言C/C++编写动态链接库要复杂写还要编写头文件,调用动态链接库时还分静态调用 和 显示调用。
生成解决方案
写好方法函数之后我们就可以编译源码了,点击菜单栏上的工具=>生成ClassLibrary1(U),就可以在项目的Debug目录生成一个名为ClassLibrary.dll的文件,这个就是我们的动态链接库了。
引入动态链接库文件
最简单的方式我们新建一个控制台应用程序,然后引入我们刚刚的ClassLibrary.dll文件,在资源管理器中的选择“引用”=>"添加引用",在浏览中找到我们的ClassLibrary.dll文件。
调用动态链接库
前面我们在ClassLibrary中写了一个简单的hello方法,输出一句“Hello DLL”。接下来我们就来简单的调用下,首先我们使用using ClassLibrary1引入空间名,要实现类中的方法我们需要先对该类实例化,然后在调用类中的hello方法。
编译运行结果
这是一个最简单的动态链接库调用示例,点击“启动”按钮编译运行控制台应用程序,我们可以在控制台看到打印出了“Hello DLL”字样,这个就是来自动态链接库中的输出语句 Console.WriteLine("Hello DLL")。
更多C#实战技巧可以参考我的专栏:C#实战系列