静态库的优点(很少见人提到的一个)

gemo 2010-05-08 08:36:25
关于lib和dll 网上主要是这个说法
动态库的应用有两个主要原因:
1、共享。多个程序可以使用同一个动态库
2、开发模式好。要求设计者对功能划分得更好
但动态库装载的时候慢,特别是运行中装载有明显延迟。一旦装载完毕执行起来根静态库比较慢不了。

静态库的优点:
代码装载速度快,执行速度略比动态库快,没有什么更多的优势。

大软件还是用动态库吧


但是我觉得lib其实有个很大的好处就是可以传递复杂对象(比如stl的string)
而dll保险起见还是传递简单对象的好吧?

大家谈谈意见
...全文
737 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
水木江南 2010-05-09
  • 打赏
  • 举报
回复
dll(动态库)还有一个优点就是支持打补丁,或者升级,不需要重新编译源程序,但是lib就需要重新编译了,所以不支持打补丁,或者升级。虽然dll是如此的好,但是我现在还一直在用lib静态库编程。
mzlogin 2010-05-08
  • 打赏
  • 举报
回复
动态库装载完成以后就好了~~~~
这个。。。我觉得还是得看模块和共用吧。。。
yzx714 2010-05-08
  • 打赏
  • 举报
回复
静态库,还是体积太大了……
sxqlyy 2010-05-08
  • 打赏
  • 举报
回复
传递复杂对象.... 这跟dll没什么关系吧 一样可以
jackyjkchen 2010-05-08
  • 打赏
  • 举报
回复
QQ我现在电脑里没装,迅雷和搜狗浏览器都是VS2003开发,以Windows SDK为主,配合STL。
jackyjkchen 2010-05-08
  • 打赏
  • 举报
回复
非也,麻烦是麻烦,但是并非不能用,你去下一套sysinternals的工具,可以查看可执行文件(exe、dll)里调用的函数,迅雷、QQ都大量使用了STL,而且是非常令人不舒服的SDK+STL混编,但是如果把握得好也是没问题的。

我个人的编程习惯是绝不混用
gemo 2010-05-08
  • 打赏
  • 举报
回复
就是 不过我看到很多软件像QQ啊什么的目录里面全是dll 难道它大部分是用C开发的么 或者不用到STL?
jackyjkchen 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gemo 的回复:]
复杂对象的问题呢 这个是个不可忽略的优势啊
[/Quote]
C++么,我一般不做C++的动态库,C++这门语言扯上高级特性后再弄动态库很麻烦
gemo 2010-05-08
  • 打赏
  • 举报
回复
复杂对象的问题呢 这个是个不可忽略的优势啊
jackyjkchen 2010-05-08
  • 打赏
  • 举报
回复
代码装载速度快,执行速度略比动态库快,没有什么更多的优势。
-------------------------------------------------------
执行速度几乎一样是,装载速度要看是使用系统dll还是自己的dll,系统dll已经装载好了。


我现在做手机开发,感觉静态库最大的优势就是对于像QT这样操作系统没有的库,大大减少装载开销,否则10M的动态dll许多机器根本跑不动

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧