关于动态链接库的静态链接

tweyseo 2011-02-11 03:26:50
动态链接库的静态链接其实就是#pragma comment动态链接库对应的导入库么?也就是在链接的时候就确定DLL中所有函数的地址信息么?(个人理解)
可是我在网上查到动态链接库的静态链接是在链接的时候载入整个dll...

所有求大家解惑,谢谢了..
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tweyseo 2011-02-11
  • 打赏
  • 举报
回复
1. 静态加载------程序静态编译的时候就静态导入dll,这样的话就需要提供给库使用者(C客户)如下文件:*.lib文件和.dll文件和*.h。

其有2个坏处:
1 程序一开始运行就需要载入整个dll,无法载入程序就不能开始运行;
2 由于载入的是整个dll,需要耗费资源较多

其调用方法如下:
#include "..\lib.h"
#pragma comment(lib,"..\\debug\\libTest.lib")

但是这种方式的话可以调用Class method.

出处
tweyseo 2011-02-11
  • 打赏
  • 举报
回复
动态链接库的静态链接这个说法是我表述的有问题
动态链接库的静态加载,这样应该就是合理了的吧
昵称很不好取 2011-02-11
  • 打赏
  • 举报
回复
动态链接的lib和静态的lib不是一回事
lsupper 2011-02-11
  • 打赏
  • 举报
回复
DLL提供的时候带有lib的时候,就是提供地址信息的...
bluesky12312388 2011-02-11
  • 打赏
  • 举报
回复
#pragma comment(lib,"xx.lib")
这lib中有实际的函数代码,是直接编译到程序中的。
动态链接是在DLL中找到相应的函数地址在调用。

动态链接库的静态链接还真没听过。
iambic 2011-02-11
  • 打赏
  • 举报
回复
没听说过动态链接库也可以静态链接。是道听途说来的还是自我发明出来的?
昵称很不好取 2011-02-11
  • 打赏
  • 举报
回复
lib可以简单理解为用来描述dll文件的,是一个符号导入库,在编译时有用

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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