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

时间:2023-01-04 19:25:35
动态链接库的静态链接其实就是#pragma comment动态链接库对应的导入库么?也就是在链接的时候就确定DLL中所有函数的地址信息么?(个人理解)
可是我在网上查到动态链接库的静态链接是在链接的时候载入整个dll...

所有求大家解惑,谢谢了..

7 个解决方案

#1


lib可以简单理解为用来描述dll文件的,是一个符号导入库,在编译时有用

#2


没听说过动态链接库也可以静态链接。是道听途说来的还是自我发明出来的?

#3


#pragma comment(lib,"xx.lib")
这lib中有实际的函数代码,是直接编译到程序中的。
动态链接是在DLL中找到相应的函数地址在调用。

动态链接库的静态链接还真没听过。

#4


DLL提供的时候带有lib的时候,就是提供地址信息的...

#5


动态链接的lib和静态的lib不是一回事

#6


动态链接库的静态链接这个说法是我表述的有问题
动态链接库的静态加载,这样应该就是合理了的吧

#7


1. 静态加载------程序静态编译的时候就静态导入dll,这样的话就需要提供给库使用者(C客户)如下文件:*.lib文件和.dll文件和*.h。

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

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

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

出处

#1


lib可以简单理解为用来描述dll文件的,是一个符号导入库,在编译时有用

#2


没听说过动态链接库也可以静态链接。是道听途说来的还是自我发明出来的?

#3


#pragma comment(lib,"xx.lib")
这lib中有实际的函数代码,是直接编译到程序中的。
动态链接是在DLL中找到相应的函数地址在调用。

动态链接库的静态链接还真没听过。

#4


DLL提供的时候带有lib的时候,就是提供地址信息的...

#5


动态链接的lib和静态的lib不是一回事

#6


动态链接库的静态链接这个说法是我表述的有问题
动态链接库的静态加载,这样应该就是合理了的吧

#7


1. 静态加载------程序静态编译的时候就静态导入dll,这样的话就需要提供给库使用者(C客户)如下文件:*.lib文件和.dll文件和*.h。

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

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

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

出处