*.lib 和 *.dll 有什么异同?

linxiao 2002-01-24 02:18:07
...全文
173 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
linxiao 2002-01-25
  • 打赏
  • 举报
回复
谢谢
tpProgramer 2002-01-25
  • 打赏
  • 举报
回复

walk21cn() 说得对!
如果使用 LoadLibrary的话,则不用 lib文件了
如果是静态连接,则需要在外部modual中添加 lib.

过年了,即使得不到我所需的答案, 大家开心了也不错.
呵呵.
分算什么东西.快乐才是最重要的!

还有一个100分的问题,其实 不是问题,只是一个咨询,参与有分!
http://www.csdn.net/Expert/topic/497/497690.shtm
pchaos 2002-01-25
  • 打赏
  • 举报
回复
动态调用DLL不要。DEF和LIB的方法是做DLL的时候函数定义的前面加上:
__declspec(dllexport)
walk21cn 2002-01-24
  • 打赏
  • 举报
回复
lib是静态库,编译后连接到你的程序中.
dll是动态库,程序启动后系统根据你的需要动态把dll代码load,映射到你的mem空间.

编译dll产生的lib是为了你在程序中静态调用.程序启动时会立刻把dll代码load.
不用lib则要使用loadlibaray等api动态调用.
文山wenshan 2002-01-24
  • 打赏
  • 举报
回复
absolute_good((NO.1)狗狗) 准确。
hainanboy 2002-01-24
  • 打赏
  • 举报
回复
谁说的对呢?能给出一个准确的答案吗?
关注
absolute_good 2002-01-24
  • 打赏
  • 举报
回复
*.dll是你的动态库,*.lib是你的动态库的声明,假如是使用扩展的c++方式生成的动态库,在c++中调用就需要lib,否则可以不需要LIB
pchaos 2002-01-24
  • 打赏
  • 举报
回复
如果你有.def文件的话不可以不要。
它们的作用是类似的
gengxy 2002-01-24
  • 打赏
  • 举报
回复
我有一个lib,那我编译后运行时还要dll吗?
linxiao 2002-01-24
  • 打赏
  • 举报
回复
那pchaos(杂讲)不是这个意思吗?
snooper 2002-01-24
  • 打赏
  • 举报
回复
不必要
linxiao 2002-01-24
  • 打赏
  • 举报
回复
那当有人提供一个dll给我,他同时必须给我一个lib吗?
戴晶晶jjyyis 2002-01-24
  • 打赏
  • 举报
回复
一个是静态连接库,另外一个是动态连接库;一个是在编译时编译到运行代码中,一个是在运行时需要调用是才加载
pchaos 2002-01-24
  • 打赏
  • 举报
回复
同意楼上
qufeiyan 2002-01-24
  • 打赏
  • 举报
回复
lib是dll的导出文件,dll是二进制的,lib就是你编程的时候要用dll时对dll的接口
pchaos 2002-01-24
  • 打赏
  • 举报
回复
据我理解:lib中存着dll中的头信息(比喻)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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