C# 中如何编写和调用自己的DLL

本文转载连接: https://blog.csdn.net/iloli/article/details/7726967

一、什么是DLL 以及使用它的好处

1、DLL 即:动态链接库
  DLL是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。(来自百度)
2、DLL的好处主要有:
  1)当程序越来越庞大时,DLL避免了EXE文件的过大。分成DLL之后,不用把全部功能都集中到EXE里,需要的时候才调入内存。
  2)DLL模块化了生产程序。DLL是产品,EXE就是个集装箱。因此对DLL模块的更新只需要替换此DLL文件即可,不用更新整个程序。
  3)编译EXE时,不用编译DLL的内容,加快了编译速度。
  4)DLL可重用。当一个DLL模式设计好之后,可以被其它项目或程序所引用。
  5)DLL可以起到保密的作用。也就是说DLL可以将实现功能的源代码隐藏起来,调用者只能使用而不能看到其内部代码。

“动态链接”这几字指明了DLLs是如何工作的。对于常规的函数库,链接器从中拷贝它需要的所有库函数,并把确切的函数地址传送给调用这些函数的程序。而对于DLLs,函数储存在一个独立的动态链接库文件中。在创建Windows程序时,链接过程并不把DLLs文件链接到程序上。直到程序运行并调用一个DLLs中的函数时,该程序才要求这个函数的地址。此时Windows才在DLLs中寻找被调用函数,并把它的地址传送给调用程序。采用这种方法,DLLs达到了复用代码的极限。
 

二、在VS2010中如何创建和编写DLL
方法很简单,就是在程序的解决方案中添加一个项目,然后选择“类库”。注意,一定要在“解决方案”上添加项目才行,在项目中只能添加类文件了。类库项目一但添加,在程序编译的时候就会自动生成为DLL文件。
至于编写DLL 这和编写类文件代码是一致的。你可以在多个CS类文件中编写,也可以全放在一起CS类文件中编写。当然推荐的方式是根据功能分类将类库分别写在不同的CS文件中。(虽然在不同文件中,但同属一个项目的类文件会被编译进一个DLL库文件中)

三、在VS2010中如何使用自己编写的DLL
方法也很简单,在你的程序中的解决方案管理器里,找到“引用”然后点右键添加,在弹出的对话框中选择“浏览”,然后选择你刚才创建并编译过的DLL文件。然后在程序文件中使用using 来引入你DLL中的命名空间。注:如果DLL项目就在你当前的程序解决方案中,那么你可以直接在添加“引用”中选择“项目”而不是“浏览”。这样就可以直接引用本解决方案中编写的DLL类库。

四、在VS2010如果让DLL文件通过引用添加到新程序后依然可以在新程序代码中通过智能感知看到代码的注释(只包含那些\\\的注释 \\和\**\的注释是无法看到的)

方法是:在你创建DLL类库之后,右键单击这个DLL类库项目的属性,然后点击“生成”标签,在“输出”区域勾选 XML文档文件即可。每次在生成DLL项目时就会多生成一个同名的XML文件,打开这个文件可以看到里面全部是DLL当中的注释内容了(只包含\\\的注释)。从这里也可以看出,智能感知中看到的代码注释其实就是从XML中读取相应内容然后显示给程序员看。只要XML和DLL在同一文件夹下,VS在导入DLL的时候会自动将同名的XML也导入进来,用户不必手动复制。

五、其它

在使用DLL的时候还有一种方法是使用[DLLImport("yourdll.dll")]。这是com组件的使用方式,在VS中微软不推荐这样的方式使用DLL。
 

发布了6 篇原创文章 · 获赞 189 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/newbie_xymt/article/details/103713993