动态链接库(DLL)简单了解

来源:互联网 发布:淘宝的网络广告方式 编辑:程序博客网 时间:2024/05/16 03:21

DLL概述。

动态连接库(DLL),是Dynamic(动态的,有活力的)  Link(联系,关系) Library(图书馆,储藏室,文库。)  的缩写形式。DLL是一个

包含可由多个同时使用的代码和书库,DLL不是可执行文件。动态链接提供了一个方法,使进程可以调用不属于其可执行代码的函

数。函数的可执行代码位于一个DLL中,该DLL包含一个或是多个已被编译、链接并使用它们的进程分开存储的函数。DLL还有助于

共享数据和资源。多个应用程序同时访问内存单个DLL副本的内容。DLL是一个包含由多个程序同时使用的代码和数据的库。

通俗的说就是:程序部分特定的代码。

也有人说DLL好比火车,火车头和尾是不可分的,一个较好的程序是由多个动态链接库组成的,可以减少冗余,如果要重复调用就

把这部分做成动态链接库,就比如机房收费系统我们分层,每层都会有一个DLL,我们可以单独拿出来。

 

在启动窗体加载的各DLL。

“frmLogin.vshost.exe”(托管(v4.0.30319)): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。

“frmLogin.vshost.exe”(托管(v4.0.30319)): 已加载“C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。

“frmLogin.vshost.exe”(托管(v4.0.30319)): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。

“frmLogin.vshost.exe”(托管(v4.0.30319)): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。

“frmLogin.vshost.exe”(托管(v4.0.30319)): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。

 

DLL的依赖。


当某个程序或DLL使用其他DLL中的DLL函数时,就会创建依赖项。因此程序是不独立的,并且如果该依赖项被破坏,该程序就会出

问题。


我们机房收费系统在配置文件的时候,需要手动的将DAL的DLL复制到UI中的app.config中。这样复制的弊端是但我们改动DAL中的

表的名称的时候相应的Dll是早期版本的DLL,这就会发生DLL冲突,导致无法运行。

程序无论是直接引用和间接引用都会在bin文件夹中的Debuge生成dll。Debuge文件夹中有Xml、dll和pdb(Program  debug database

 调试信息文件吧。Pdb is a container format for record databases in palm OS,Garnet OS and Access Linux Platfrom.)文件。

 

 DLL运用见:http://blog.csdn.net/xhf55555/article/details/7648702

更多见微软的帮助文件。

http://social.msdn.microsoft.com/search/zh-cn?query=DLL&x=0&y=0

原创粉丝点击