DLL的目的是什么,而不是静态库

时间:2012-02-12 01:38:30

标签: dll static-libraries

我使用的库可以处理与游戏开发相关的各种任务。它带有一个用于静态链接和动态链接的编译库文件。请原谅我的近视,但我问,为什么有人会在静态库上使用DLL时两者都可用?如果使用DLL,似乎这可能会引入各种程序,例如错误放置,丢失的DLL,并且这使得软件的分发不太方便。理论上它也可以增加程序的加载时间。我看到使用DLL的唯一实际好处是可能多个程序可以使用这些库,从而减少了程序的大小。

2 个答案:

答案 0 :(得分:2)

你是对的,可以在多个程序之间共享DLL。以kernel32.dll为例,它被加载到每个用户模式的Windows应用程序中。 Windows可以在所有正在运行的应用程序之间共享kernel32.dll的内存页面,但如果它已经静态链接,则每个应用程序都会有相同代码页的重复副本。

Microsoft在此处简要概述了使用DLL的好处: http://msdn.microsoft.com/en-us/library/windows/desktop/ms681938(v=vs.85).aspx

答案 1 :(得分:1)

THIS->

  

......从而缩小了节目的规模。

它还允许第三方更新/修复功能,而无需重新编译或发布相关软件。哪个更重要......