DLL简介

                                       DLL简介

                            (本文内容基本源于MSDN)  

DLL(dynamic-link library)动态链接库:
DLL是可执行文件,可以作为函数的共享库。动态链接(Dynamic linking)可以让一个进程调用不属于进程本身的函数,而这些函数的代码就位于DLL中。DLL同样可以共享数据和资源,多个程序可以同时访问某一个DLL的内容。

动态链接(Dynamic linking)与静态链接(static linking)的区别在于:
动态链接允许可执行模块只包含在运行过程中定位DLL函数的信息,而静态链接则直接将引用到的函数代码包含在可执行模块里。所以使用DLL使得可执行文件的大小比静态链接的小的多。如果许多程序都使用相同的DLL,则能够节省大量的硬盘和内存。

 

  C/C++运行库(Run-time Library)的运行机制

   DLL的初始化过程是由C/C++ run-time library代码完成。C/C++ run-time library代码包含DLL的入口(entry-point)函数_DllMainCRTStartup.  _DllMainCRTStartup函数调用CRT_INIT函数,CRT_INIT初始化C/C++ run-time library 以及C++的静态全局变量(如果变量是对象,则调用对象的构造函数)。另外在初始化C run-time library的过程中,_DLLMainCRTStartup会调用DLLMain函数。DLLMain函数由Visual C++ 提供并链接到DLL代码中,以供_DLLMainCRTStartup调用。如果你想在DLL启动时做些初始化的工作,可以在DLLMain函数中添加你的代码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值