欢迎来到天天文库
浏览记录
ID:37740921
大小:32.50 KB
页数:6页
时间:2019-05-30
《如何利用C_创建和调用DLL》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何利用C#创建和调用DLL一、写在前面C#语言是一种简单但功能强大的编程语言,用于编写企业应用程序。C#语言从C和C++语言演化而来,在语句、表达式和运算符方面使用了许多C++功能。C#语言在类型安全性、版本转换、事件和垃圾回收等方面进行了相当大的改进和创新。C#语言提供对常用API样式(如.NET框架、COM、自动化和C样式API等)的访问。 什么是动态链接库?DLL三个字母对于你来说一定很熟悉吧,它是DynamicLinkLibrary的缩写形式,动态链接库(DLL)是作为共享函数库的可执行文件。动态链接提供了一种
2、方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。和大多数程序员一样,你一定很使用过DLL吧。也曾感受到它的带给你程序设计和编码上的好错吧今天我想和大家探讨一个主题:如何在C#创建和调用DLL(动态链接库),其实在很大意义上而讲,DLL让我更灵活的组织编写我们的应用程序,作为软件设计者,可一个根据它来达到很高的代码重用效果。下面我来介绍一下在C#中如何创
3、建和调用DLL。 二、准备工作 我们需要对我们接下来要做的事情做个简单的介绍,在本文我们将利用C#语言创建一个名为MyDLL.DLL的动态链接库,在这个动态链接库文件中我们将提供两个功能一个是对两个参数交换他们的值,另一个功能是求两个参数的最大公约数。然后创建一个应用程序使用这个DLL。运行并输出结果。 三、创建DLL 让我们创建以下三个C#代码文件:1、 MySwap.csusingSystem;namespaceMyMethods{ publicclassSwapClass { publicstat
4、icboolSwap(reflongi,reflongj) { i=i+j; j=i-j; i=i-j; returntrue; } }} 2、 MyMaxCD.csusingSystem;namespaceMyMethods{ publicclassMaxCDClass { publicstaticlongMaxCD(longi,longj) { longa,b,temp; if(i>j) { a=i; b=j; } else
5、{ b=i; a=j; } temp=a%b; while(temp!=0) { a=b; b=temp; temp=a%b; } returnb; } }}}需要注意的是:我们在制作这两个文件的时候可以用VisualStudio.NET或者其他的文本编辑器,就算是记事本也可以。这两个文件虽然不在同一个文件里面,但是他们是属于同一个namespace(名称空间)这对以后我们使用这两个方法提供了方便。当然他们也可以属于不同的名称空间,这是完全可以的,但只是在我们
6、应用他们的时候就需要引用两个不同的名称空间,所以作者建议还是写在一个名称空间下面比较好。接下来的任务是把这两个cs文件变成我们需要的DLL文件。方法是这样的:在安装了Microsoft.NETFramework的操作系统上,我们可以在Windows所在目录下找到Microsoft.NET目录。在这个目录下面提供了C#的编译器,CSC.EXE运行:csc/target:library/out:MyDLL.DLLMySwap.csMyMaxCD.cs完成后可在本目录下面找到我们刚才生成的MyDLL.DLL文件/target:libra
7、ry编译器选项通知编译器输出DLL文件而不是EXE文件。后跟文件名的/out编译器选项用于指定DLL文件名。如果/out后面不跟文件名编译器使用第一个文件(MySwap.cs)作为DLL文件名。生成的文件为MySwap.DLL文件OK!我们创建动态链接库文件的任务完成了,现在是我们享受劳动成果的时候了,下面我将介绍如何使用我们所创建的动态链接库文件。 四、 使用DLL 我们简单写一个小程序来测试一下我们刚才写的两个方法是否正确,好吧,跟我来:MyClient.cs usingSystem;usingMyMethods;//这里我
8、们引用刚才定义的名称空间,如果刚才的两个文件我们写在两个不同的名称空间classMyClient{ publicstaticvoidMain(string[]args) { if(args.Length!=2)
此文档下载收益归作者所有