关于动态库与静态库,都在什么时候用到?

myfeng 2008-07-17 05:43:59
想请教一下,两者有什么区别,分别在什么时候用到
...全文
450 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daixiu 2008-07-17
  • 打赏
  • 举报
回复
动态库一个文件可被多个进程共享节省了资源。
Daixiu 2008-07-17
  • 打赏
  • 举报
回复
动态链接库(DLL)分隐式调用和显示调用。
隐式调用需要.h、.lib和.dll三个文件,其中,lib文件为工程提供DLL的输出函数和变量名,lib文件可以在编译器中连接,也可用#pragma语句连接。
显示加载只需要.dll文件就可以了
用LoadLibrary 加载,GetProcAddress 获得接口函数或变量,FreeLibrary 卸载Dll。
wanshi131 2008-07-17
  • 打赏
  • 举报
回复
dll可以自动加载和动态加载,自动加载需要对应生成的lib库
只要使用DLL就需要提供DLL

lib库分为包含代码的和不包含代码仅用于取函数地址的

oo_v_oo 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 myfeng 的回复:]
是这样的,我想写一个硬件的接口库,当然生成库的时候用到了硬件本身提供的dll,最后我生成分别生成了我自己的dll,lib库文件,那么别人在使用我提供的库时,还需要用到硬件本身提供的dll或者lib吗?
[/Quote]
当然需要


myfeng 2008-07-17
  • 打赏
  • 举报
回复
是这样的,我想写一个硬件的接口库,当然生成库的时候用到了硬件本身提供的dll,最后我生成分别生成了我自己的dll,lib库文件,那么别人在使用我提供的库时,还需要用到硬件本身提供的dll或者lib吗?
fox000002 2008-07-17
  • 打赏
  • 举报
回复
两者的功能应该是一样的,都是一些 code 的封装

差别在于动态库实际的 code 是在 DLL/so 文件中,需要时载入执行

静态库类似于 object 文件,程序在连接时嵌入了实际的 code

动态库使用比较灵活一些,可以用于 IPC,程序体积可以有效压缩
化外之民 2008-07-17
  • 打赏
  • 举报
回复
UNIX,LINUX下使用静态库。
thirddata 2008-07-17
  • 打赏
  • 举报
回复
静态库,编译程序的时候和exe直接编译在一起了,运行过程中不需要dll
动态库,是动态加载的,运行过程中动态调用。

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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