用Visual C#做DLL文件

2016-02-19 17:09 22 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的用Visual C#做DLL文件教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

  作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性、代码的重复使用等方面都有了很大的提高。以前用的DLL一般都是用Visual C++、Delphi或者VB等编程语言来编写的,这种DLL的编写和使用,我们大都已经比较习惯了。作为新一代的程序开发语言--Visual C#,到底是如何编写和使用DLL的呢!本文就试着就这方面的问题来进行简单的介绍。

  Visual C++、Delphi或者VB等编程语言来编写成的DLL文件,在编译完成过以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受管代码(managed code)虽然也是二进制文件,但不是可以直接供计算机使用的原始代码(机器语言代码)。他实质上是一种中间语言(IL)代码,这种IL代码要转变成可以供计算机直接使用的原始代码,就需要经过"下一代窗口服务"( Next Generation Windows Services,简写为NGWS ) runtime的即时编译器(即JIT)进行编译。

  经过以上比较,我们可以看出,用Visual C#生成的DLL文件已经和以前的DLL文件有了本质上的区别。用Visual C#生成的DLL文件在程序设计中更多的表现为一种类(Class)或者类库(Class Library)。本文就试着通过一个具体程序的例子,按照下面步骤来具体介绍:

  (1).创建一个DLL源代码。

  (2).编译此DLL源代码,生成DLL文件。

  (3).用此DLL来创建一个简单的客户端程序。

  一. 程序设计开发及运行环境:

  (1).微软视窗2000专业版

  (2)..Net FrameWork SDK Beta 2

  二. 创建一个DLL源代码(dll.cs)

  由于用Visual C#创建的DLL,此DLL是不需要执行的界面,所以在DLL文件就没有必要定义Main ( )函数,来作为应用程序执行的入口。Dll.cs的源程序代码如下:

  Dll.cs:

  

namespace Dll file://定义了名称空间,在调用DLL的时候就要导入此名称空间。{ public class Show file://定义了一个类,在程序中就要来继承此类。 {   public string Messages ( )  file://定义了一个方法,此方法的作用就是返回下面字符串。  {   return "欢迎使用Visual C#做的DLL文件!" ;  } }}

  通过此DLL的源程序可以看出,此DLL表现为一个小型的类库,这是因为在此DLL中封装了名字叫DLL的名称空间,在此名称空间中又定义了一个Show类,在此类中有一个方法就是Messages。虽然定义的内容相对少了些,但却相当完全。

  三. 编译此DLL源代码,生成DLL文件

  要把DLL源代码编译成DLL文件,就需要配置好编译器Csc.exe的参数和开关。我们知道编译器Csc.exe可以把源代码编译成四种不同的文件,分别是控制应用程序、代码库、windows应用程序、模块程序。编译命令具体如下:

  

csc /target:exe myProj.cs // 创建一个myProj.exe控制程序csc /target:winexe myProject.cs file://创建一个myProj.exe的windows程序csc /target:library myProject.cs file://创建一个myProj.dll代码库csc /target:module myProject.cs file://创建一个myProj.dll模块

  对于如何配置编译器Csc.exe的其他参数和开关,可以参考稍前发表的文章《如何用CSC.exe来编译Visual C#的代码文件》,在此篇文章里面有比较详细的介绍。通过以下编译命令可以得到mydll.dll文件:

  

Csc /r:system.dll /t:library /out:mydll.dll dll.cs

  四.用此DLL来创建一个简单的客户端程序(test.exe)

  通过以上的源程序代码可以看到生成的mydll.dll文件虽然是一个以DLL为扩展名,实际上是一个类库,和我们经常用到的System.dll、System.Windows.Forms.dll等这些文件相似。同样用mydll.dll创建程序也和用以上这些类库创建程序相类似。就是第一步就是导入此名称空间--Dll。然后在去继承里面封装好的类--Show,再调用类中定义好的方法--Messages。下面就是按照以上的步骤,创建的客户端的源程序代码( test.cs ) :

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

test.cs:using Dll ; // 导入此名称空间using System ;public class GetMessage{ public static void Main ( ) {  Show hi = new Show ( ) ; // 继承名称空间中定义的Show类  Console.WriteLine ( hi.Messages ( ) ) ; // 调用此类中的方法 }}

  在把test.cs编译成执行程序中,要在编译命令中添加一个引用,就是引用mydll.dll文件。具体的编译命令如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

csc /r:mydll.dll /r:system.dll test.cs

  编译完成,就会生成test.exe。执行此文件就会得到以下执行界面:

  图01:在客户端制作调用DLL的应用程序执行界面

  五.总结:

  通过此篇文章,可以看出用Visual C#制作一个DLL其实并不是一件很复杂的事件,但对DLL的调用却和以往有了较大区别,其中最主要的原因是,用Visual C#或者其他.Net 程序开发语言制作的DLL和以前的DLL有了实质上的区别。它已经不是严格意义上的动态连接库了,而是一个类或者类库。

来源:http://www.tulaoshi.com/n/20160219/1614385.html

延伸阅读
推荐: Visual C# 轻松入门全攻略 本文介绍如何用Visual C# .NET 2002开发简单的复合控件(Composite Control),主要讲解控件开发过程中的属性(Property)和事件(Event)处理,以方便开发人员在.NET平台下根据自己的需要开发适合的控件。 当我们在.NET平台下做Windows Forms开发时,常常需要为了某一特殊用途而把现有控...
Visual C#作为下一代主流的程序开发语言,其语言功能的强大是众所周知的。并且又有一个内容十分丰富的程序开发包--.Net FrameWork SDK,作为他的后盾。这样就使得Visual C#有了一个充分发挥其本领的舞台。Visual C#的强大功能不仅表现在支持各类数据库的数据处理方面,还表现对网络编程和文件处理等方面。 视窗操作系统的回收站是对文...
Visual C#是微软公司推出的下一代程序开发语言。他不仅具有Visual C++功能强大的特点,又具有Visual Basic的简洁,易上手的特点。所以一经推出,就收到了广大程序开发人员的欢迎。Visual C#和Visual C++的一个明显的区别在于,Visual C#本身是没有类库的,而Visual C++却是自身就带有类库。Visual C#虽然没有类库,但作为.Net框架中的一个...
一、弄清结构再动手 要想轻松的抽取RSS信息,自然先要了解它的结构,所谓“知己知彼,百战不殆”嘛。 1、RSS的结构 我们先打开百度新闻一个RSS链接,如果你再多打开几个别的网站的RSS链接,会发现他们都有大致相同的结构。而我们在揭秘RSS(上)中为大家讲解的其实就是编成实现这样的一个XML文件。 为了能够方便地对这样...
Adobe PDF格式已经变成很多机构和公司进行跨平台制表的通用媒体格式。尽管我不是这个产品的狂热痴迷者,却不得不接受这样一个事实:用这个格式产生一个协定可能会比用Word还要好。 PDF的全称为Portable document.nbspFormat,即可移植文档格式,由广泛应用于专业打印领域的Postscript解释语言演化而来。为了使PDF迅速得到推广,Adobe...

经验教程

781

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部