-4

我很难理解我的文字,我想非常了解每个部分。请尽可能描述。非常感谢。

4

3 回答 3

3

程序员经常发现他们有一些他们想在多个程序中使用的代码,或者他们想让其他程序员使用的代码。他们可以将逻辑复制并粘贴到每个程序中,或者他们可以将逻辑放在他们包含在每个项目中的公共头文件和实现文件中。这些方法都不是非常优雅(或高效)。

静态库是共享逻辑的一种方式,以便其他程序和程序员可以使用它。静态库是适合输入到链接器的二进制文件(通常带有 .LIB 扩展名)。程序员通过编写代码调用静态库中实现的一个或多个函数并安排链接器读取该静态库文件作为附加输入来使用静态库。在构建期间,链接器将解析所有引用,包括对静态库中实现的函数的引用。静态库通常与描述库中实现的函数的头文件配对。

动态链接库是共享逻辑的另一种方式。动态库也是二进制文件(通常带有 .DLL 扩展名)。与静态库不同,DLL 不用作链接器的输入。相反,DLL 在程序执行期间动态加载。DLL 可以通过调用LoadLibraryExGetProcAddress显式加载,也可以在加载消费程序时隐式加载。

于 2011-05-26T00:35:47.157 回答
2

静态库是包含在二进制文件中的库。据说它是静态的,因为它在链接器运行时链接到您的程序。DLL 是一个动态链接库,因此它是在二进制程序加载到内存时而不是在编译和链接时链接到二进制程序的共享代码。

于 2011-05-25T23:50:26.427 回答
1

名称说明了一切 - 静态库是静态的(您使用链接器将它们编译并成为程序的一部分)并且 DLL(动态链接库)在运行时通过文件名动态链接,然后您调用它们的方法。它是外部的。

于 2011-05-25T23:49:59.103 回答