| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4550 人关注过本帖
标题:不明白动态链接库和静态链接库的作用,求讲解!!!
只看楼主 加入收藏
jiapengyun
Rank: 2
等 级:论坛游民
帖 子:10
专家分:27
注 册:2013-4-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
不明白动态链接库和静态链接库的作用,求讲解!!!
我写了个程序,其中用到了数函数,头文件加入了,但是把生成的所有文件放到一台没装VC++6.0的机子上时,  .exe   文件无法运行,报错说找不到MFC什么的   .dll   文件,这问题如何解决?
搜索更多相关主题的帖子: 讲解 动态 如何 
2013-04-15 18:53
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1483
专家分:9055
注 册:2010-3-16
收藏
得分:8 
可以编译成静态库的。要不就给目标电脑安装运行库。
简单来说
静态库编译就是把所需要的库直接编译进程序文件里,目标电脑不需要安装运行库,但是程序文件会比较大。
动态库就是调用.dll里的库函数。运行程序的机子需要安装相应的运行库才可以,程序文件一般很小。。
2013-04-15 21:14
如蜗牛
Rank: 2
等 级:论坛游民
威 望:1
帖 子:40
专家分:42
注 册:2013-4-12
收藏
得分:3 
以下是引用apull在2013-4-15 21:14:00的发言:

可以编译成静态库的。要不就给目标电脑安装运行库。
简单来说
静态库编译就是把所需要的库直接编译进程序文件里,目标电脑不需要安装运行库,但是程序文件会比较大。
动态库就是调用.dll里的库函数。运行程序的机子需要安装相应的运行库才可以,程序文件一般很小。。


作者能把动态和静态库多多解释点儿吗?路过,想多学习点儿~~
2013-04-15 22:16
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:9 
回复 3楼 如蜗牛
静态库和动态库链接分析
 
1、文件组成结构
 
静态库:lib   头文件
 
动态库:lib   dll  头文件
 
从组成上看,动态库和静态库的差异在于动态库多了一份dll文件,导致动态库可以独立存在,
 
2、链接方式
 
静态库:只能静态链接
 
动态库:动态链接和静态链接
 
3、运行效果
 
静态库:相当于直接把代码段写入到exe或dll文件中
 
动态库:相当于与exe或dll形成了一种关系,exe或dll可以到动态库中去查找所需要的函数
 



4、差别:
 
静态库:不需要导出就可以被链接使用
 
动态库:需要导出后方可使用(动态链接)
 



5、编译
 
静态库:编译后只有lib文件
 
动态库:若没有导出函数刚只能编译出dll文件而没有lib因此无法静态链接
 



6、导出类的链接
 
静态库:不需要导出,可以直接链接
 
动态库:必需要导出才可以链接,必须将类中所有函数导出才可以使用(对于public)
 
对于(protected)无论导出或者不导出均无法直接使用
 
对于(private)无论导出或者不导出均无法直接使用
 



7、导出子类
 
静态库:不需要导出,直接使用文件头就可以使用
 
动态库:必须导出子类,
 
   若仅使用到子类函数,可以不用导出父类。
 
若需要使用到父类中继承的函数时,需要将父类中相应的函数导出,否则无法使用
 
私有函数成员无法在外部使用
 
若类不导出,只导出成员函数,同样可以正常使用,
 



Maybe
2013-04-15 22:48
jiapengyun
Rank: 2
等 级:论坛游民
帖 子:10
专家分:27
注 册:2013-4-14
收藏
得分:0 
回复 4楼 邓士林
很详细,嘿嘿,明白了。
2013-04-16 18:14
如蜗牛
Rank: 2
等 级:论坛游民
威 望:1
帖 子:40
专家分:42
注 册:2013-4-12
收藏
得分:0 
回复 4楼 邓士林
因为没有实际试验,不能深入理解,或者说理解的程度还很低,但衷心谢谢您这么详细的讲解~~~我已经收藏下来,留待真正涉及到这方面的知识时深入理解!如果您有什么好的建议,可以帮助理解,当然更加欣喜!!!
2013-04-16 22:46
快速回复:不明白动态链接库和静态链接库的作用,求讲解!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011463 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved