Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1055513
  • 博文数量: 288
  • 博客积分: 10306
  • 博客等级: 上将
  • 技术积分: 3182
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-12 17:00
文章分类

全部博文(288)

文章存档

2011年(19)

2010年(38)

2009年(135)

2008年(96)

我的朋友

分类: C/C++

2009-10-30 13:35:20

1.dll lib 与使用dll lib 的exe的关系:

lib文件是在link的时候用   
dll文件是在Run的时候用
 
lib   是静态链接库   
dll   是动态链接库
 
dll你需要和你的程序一起发布才行   
lib编译后就不需要了
 
lib将在连接时把一些代码拷贝到你的程序代码里,所以叫做静态连接   
dll是程序运行时把dll里的代码和资源加再到进程地址空间去,所以叫动态连接
 
动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。
lib与dll文件最大区别在调用方面 
dll可以静态陷入
 
.LIB 静态连接库(生成可执行文件)。   
.DLL
动态连接库(运行时加载)。
 
.lib .dll都是编译了的可执行代码   
所不同的是,.lib中的执行代码的内容在你自己写的程序的编译过程中被拷贝了一份,而   
dll
只是标记了一个对这个dll文件的某一段代码(函数)的引用,你的程序运行时必须有   
这一个.dll文件
 
调用方法存在不同 
使用LIB,你在工程内部不用调用LoadLibrary及GetProcAddress.  

阅读(1317) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-05-08 14:24:59

不错不错,分析得很详细,谢啦