DLL and LIB

时间:2024-08-05 19:04:44

在*中看到一个提问“what's the difference between DLL's and LIB's?”

有如下回复值得参考:

回复一:

aaarticlea/png;base64,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" alt="" />

回复二:

There are static libraries (LIB) and dynamic libraries (DLL).

Libraries are used because you may have code that you want to use in many programs. For example if you write a function that counts the number of characters in a string, that function will be useful in lots of programs. Once you get that function working correctly you don't want to have to recompile the code every time you use it, so you put the executable code for that function in a library, and the linker can extract and insert the compiled code into your program. Static libraries are sometimes called 'archives' for this reason.

Dynamic libraries take this one step further. It seems wasteful to have multiple copies of the library functions taking up space in each of the programs. Why can't they all share one copy of the function? This is what dynamic libraries are for. Rather then build the library code into your program when it is compiled, it can be mapped into your program as it is loaded into memory to run. Multiple programs running at the same time that use the same functions can all share one copy, saving memory. In fact, you can load dynamic libraries only as needed, depending on the path through your code. No point in having the printer routines taking up memory if you aren't doing any printing. On the other hand, this means you have to have a copy of the dynamic library installed on every machine your program runs on. This creates its own set of problems.

As an example, almost every program written in 'C' will need functions from a library called the 'C runtime library, though few programs will need all of the functions. The C runtime comes in both static and dynamic versions, so you can determine which version your program uses depending on particular needs.

回复三:

aaarticlea/png;base64,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" alt="" />

  • 我们先写个lib做个实验:

myLib.h:

#ifndef MYLIB_H
#define MYLIB_H
class myclass
{
public:
myclass(){}
~myclass(){}
void show();
};
#endif

mylib.cpp:

#include "mylib.h"
#include <iostream>
using namespace std; void myclass::show()
{
cout << "Hello Lib!" << endl;
}

不需要main函数就可以编译出lib文件:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAAhCAIAAABhktNwAAABWklEQVRoge2YORLCMAxFfa20uYuuk8v4MrkF0FC5oHBI5AUNxp+E5b8qXpSRH9IYcIGgcUcn8IPQKR46xUOneOgUD53ioVM8dIqHTvHQKZ7XnV4LgGl9NQ1OS4mjgopX2pxmEsdxPJ8u59NlHerV9yUdQgjzNLhhmpcn8cZWL3G9IaSLZqeGxGwVmmdhgU5fOoYOMcKfdtqVTAO9vW8M02g6rdHjVNyd2HzBSzYRD7ogXm1wwzTXez9OxKdtfyFL9/6TIV0cUqdeUpPiq6Vj1mkqyOl35++pOzVDujjCqSpBVapxdnUdmpyqpfLDeVSnRkgXvXeUMUyjU6daXbHNVW7nn3YK6v3tDF6WA0+5vpbe1/vyb04Per8MAbFbnd6voK0E8/uhvDJUiAqIM1nRSTXYcloJAbFbnf4RXb/3bd6X9IfD//rw0CkeOsVDp3joFA+d4qFTPHSK5wYrBllxkePf4AAAAABJRU5ErkJggg==" alt="" />

然后写个例子来使用这个lib:

#include <iostream>

#include "..\..\..\testLib\testLib\testLib\mylib.h"

#pragma comment(lib,"testLib.lib")

int main()
{
myclass mc;
mc.show();
system("pause");
return ;
}

include头文件和#pragma comment必不可少。运行结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAALMAAAAoCAIAAAA611wkAAADTklEQVR4nO2bz3KbQAzGecnGYPApMcYmlwSD/zxMz7n2DXicTn1se8304JbiXe0n7doOheo3jIfRarVa6QPvjJPo6/f3z29fFs/HAa7ymJXHrDymm0O63iVFE+d1vKxmT68PT6+fHl8eHl9myyrO63mxS9f7dLPPysOipINk5SHbHNLNPl1fXn8tu3mxmxfNvGiSoklWTbJqkqKZwyspmmRVx3kd59s438Z5FS+r2bKKl1Wcb+O8Tla1JM7oruj0433xfIwUxUCVodCoMhQaVYZCc1ZG27Zt254t/XtA20Ni94INYgx5OSsivoUqAztf3wwcwaVIl6eKw5uRKsM3E1WGN6wycGXldt8O+Xa6vSR4XeU3fWXYRQSKAUbbzsZhI7CjYAmVRQj4neFSTMeHKQPogF1ClRGCRBlg+scoA+sgeAkFIVfGgO+MK5WhQgkh+ATaWsjtbFZ2EBzfuCFT9SiKEv1RxtBZKP8eqgyFRpWh0LDKwN/Q9ij7jU46CA8fwQ6uId9kgpMfH50yvGqHR72mgJMpeQ7F/l559u3t5aHbK87ElRFdlumaZkiUAWKy0UCbu4DGDbmWSw2sjIzl5HsZE6Qy+kjaHInFJG+zywf4s43HDv294IDspqaA65yBe2zb5c8ZdgCrY+WRkSX+/fztTzJPdlNT4CYnUFfV7AoKlREAVqphxMJiRWZb7ICjx/it9WwE22YfF1CaAGV4pUF2F7eN3bJXthKH0cCeMzBd+dgWsm6g5eS6wGiHwv7gHi9q746cOEpcyhA+QKCR5D0oLolcQPZQS2nRtS5QFc5zgpo4A5RheNq6sd1wBDasxF8S3M6NVZLrk/Rn40+Ba94Z9hTXEDCyynABgnedAxPtbO0htveuaFMg7J3hMpLPEw4irKnEzVemwrkuf1ayQMQ45p38/bCVAR44Mjmh0TWENeQlViN/4SqShQx/sC7rDLifP9lNZqKhjM5b2EKXG+43G5aMQ94bRiAOI7hRGlaCrlIKJTUsIco4Cb5NyEIDo31vz8K5AoECB1JM7BLAE/i7jEy5BwJvjcb1f62g5aSRXOkmhQvZ1f1x5TB4YiS3VIbyv6PKUGj0r/0UGn1nKDSnn6oMhUKVodCoMhSSXzBjxF0ha7osAAAAAElFTkSuQmCC" alt="" />

别的工程要使用这个lib有两种方式:
(1)在工程选项-〉link-〉Object/Library Module中加入hello.lib
(2)可以在源代码中加入一行指令
#pragma comment(lib, "testLib.lib")
注意这个不是C++语言的一部分,而是编译器的预处理指令,用于通知编译器需要链接hello.lib。

这种lib文件的格式可以简单的介绍一下,它实际上是任意个obj文件的集合。obj文件则是cpp文件编译生成的,在本例中,lib文件只包含了一个 obj文件,如果有多个cpp文件则会编译生成多个obj文件,从而生成的lib文件中也包含了多个obj,注意,这里仅仅是集合而已,不涉及到 link,所以,在编译这种静态库工程时,你根本不会遇到链接错误。即使有错,错误也只会在使用这个lib的EXE或者DLL工程中暴露出来。第二个试验后,我们会介绍另一种lib。

  • 再写一个使用DLL的实验:
extern "C" __declspec(dllexport) void show()
{
std::cout << "Hello DLL!" << std::endl;
}

声明为:

extern "C" __declspec(dllexport) void show();

这个DLL编译出来有如下文件:

aaarticlea/png;base64,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" alt="" />

此时生成的lib,不是obj文件的集合,即里面不含有实际的实现,它只是提供动态链接到DLL所需要的信息。这种lib可以在编译一个DLL工程时由编译器生成。

我们把DLL放在工程目录下,使用DLL中的show():

#include <iostream>

#include "..\..\..\_testDLL\testDLL\testDLL\testDLL.h"

#pragma comment(lib,"testDLL.lib")

int main()
{
show();
system("pause");
return ;
}

运行后:

aaarticlea/png;base64,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" alt="" />

如果不添加“#pragma comment(lib,"testDLL.lib") ”,就会报错:

aaarticlea/png;base64,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" alt="" />

如果把目录下的testDLL.dll删除,则会提示:

aaarticlea/png;base64,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" alt="" />

此时,lib与dll缺一不可;使用了DLL,但也必须用lib和头文件进行声明。

我们使用动态调用:

#include <iostream>
#include <windows.h>
typedef void(__cdecl *MYPROC)();
int main()
{
HINSTANCE hInstLibrary = LoadLibrary("testDLL.dll");
if (hInstLibrary != NULL)
{
MYPROC ProcShow = (MYPROC)GetProcAddress(hInstLibrary, "show");
if (NULL != ProcShow)
{
ProcShow();
} }
system("pause");
return ;
}

运行结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAAnCAIAAAAHGNQaAAAEsElEQVR4nO2b61LbVhDH/SZJJ4SE3Nq0eTVLhFoCB1mmJIRmmjbTfi7F2Fi2fJUtX451sTEwSR+pH0RkRedoz5EMyBX6zw6jWa327Nnf2hJgZzih4Jg2QOZ0jpthhzD8cms6N22vnfnMINhsYs8mlmtT15A1RebCxqY9NuyRYxPHrOHEGiJriKwBMgfIHIxNfWzqI0MfGf3RpD+a9IaT3mCiDZA2QJo+1vRxVx93+qNOf9Tujdq9YVsbtrRBSxs0u3qjqzc6utrpq+2+2u7V2716S6s1tVpTU5pdpdFVGp2q2qmqnVO1fVpvV+rtSq1VqbXKtVZZaZaV5onSOFEaJ9VGqdooVdXSqVo6VY8dq6jHlfpxpf6P18q1I78pR2Xl6IRgf/us5LeMS/f1z9v31jZSS5hdATan83trG5lUyVMKOOHiBdkBfD8FnEi5r+AUcDLlBYwQQgg5fu8xIOQRiz+U0LdactEli/m/ihdkXpDN6fz+2pMIgOHg5XvqZiAyDlvJXWTMi1/vwQ9XGjBwzF7JXQS8eIsGAUd798P9YRudAl5WOGC8F9TOMrabhRCQYRnA7CsmTVeAbegeHATeVeyAqX72FZMmTpCyOcmwoadoamviBRy57DuhbK6QzRXYARO7dguAGVMBS9xR3ks+ZCFM7H5qbcQMxOTIMwTwVaGakwTxosyJsgM47lpS3YA2d/Y2t4vm7Py79adx15LqBrT1Zn8rv2+dXTx49DzuWlLdgAT5UCi8t+eXaxvfA2Hw3Qs/S73bEQMYb8yRA4JOhS0mcvExKL//23bxw/T88/rTl5mQLYDPhroEePgiPjrB8aHq9Pp9D2Wh8qwo4N2DP/JvP84uvjx69qPjQaQn3gg9ZQEM5KRmA2i5CX0HxLWCoFKnwbcc+15uVYXDP3cPPp1d/vv4+U+OJzKtDPNMsNMKigHiqfzgAO9e4ITUTa2E5F//khzAL17hZ2FUuJ996uEAYHV4gIiZWeK99eM/iXVSN7USWgD++gomCq4e7wXcCEbAEQQPnM8Jzwd1VnAPnjB+Fd5/2n37++ziy/qzl/huGTcQClgEwKHKIEKCu0/dcqhqWQJuT/n9jzt7H2bnnx8++cHxRCjO7QKVBDUMIEdcF3DiqeB44BheFN8d8cJ4JBYPRdn5PfiF4/FtkmWcAR7EY6BHRLHPAX4KkUYqaF1gOOA6VxGto5x0sPXmnXV26f4lC55iHD8eBmegpmWJZ0mO10YdiKCfxHhq/pXQVv6X1zt7ludv0fCWqMAA2ICTCjhIQHIXAHAhXi1+ioowKNtKaHO7yItFc3ru/jcJ3g8LMOJ0w0kYW8MSFnbaGK8NiqdOHjCLcM7riefFAidI3g++e9nApXvXYHQGnYJHIdTM+epnXIVlIV88sC41GNA1x2cFKStIxreA3WhGEkFhMDZqWmIe4rHPCTD2Jfe1hjpJLCPOzuY2xOUkLicZ9uLLZ/CGWcaWulv3qiD5rqUOClwnyxJAJBAf5Fwhxtnc1YfuiN8uBMgRncQBv5b9w32PS0E1xF7YQpwgcYJkpF8fTar49PvByRYnFjgxBZxc8aLMp6/gBGtzp+h8qjIFnEj9B7+zk+wKFxdpAAAAAElFTkSuQmCC" alt="" />

  • 现在,来总结下DLL和Lib的区别与联系:

(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。

(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中(即lib和dll都得用上)。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其 中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。

(3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际 的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行时再把程序代码和被调用的函数代码链接起来,从而节省了内存资 源。从上面的说明可以看出,这种情况下,DLL和.LIB文件必须随应用程序一起发行,否则应用程序将会产生错误。

  • 编写和使用DLL需要注意三个文件:

(1)dll头文件    
  它是指dll中说明输出的类或符号原型或数据结构的.h文件。当其它应用程序调用dll时,需要将该文件包含入应用程序的源文件中。    
(2)dll的引入库文件    
  它是dll在编译、链接成功后生成的文件。主要作用是当其它应用程序调用dll时,需要将该文件引入应用程序。否则,dll无法引入。exe在运行时,借助lib的指引,把需要用到的dll调用起来(需要用到的函数的实现存储在DLL中),如果仅仅是编译时,只用到lib中的索引(函数地址)即可

(3)dll文件(.dll)    
  它是应用程序调用dll运行时,真正的可执行文件。dll应用在编译、链接成功后,.dll文件即存在。开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,不必有.lib文件和dll头文件。   
动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一
个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问
内存中单个 DLL 副本的内容。

动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。

参考:http://www.cnblogs.com/devilmsg/articles/1266336.html

http://www.cppblog.com/amazon/archive/2009/09/04/95318.html