【发布时间】:2016-10-27 15:32:30
【问题描述】:
我发现隐式和显式链接 .DLL 有很多不同的原因。我目前正在使用带有 SFML 的 Visual Studio 2015 和 C++。
隐式: -好的一面: 您可以访问 .DLL 标头 (.h) 并知道它包含的函数。 它更容易链接和使用。 不太容易出错。 似乎是最常用的做法。
-坏的一面: 绝对需要.lib、.h 和.dll 文件来链接。 由于文件更多,占用更多磁盘空间。
显式: -好的一面: 由于只需要 .dll,占用更少的磁盘空间。
-坏的一面: 由于可能使用 dll 可能没有的功能以及正确加载它,因此容易出错。 由于您没有标头,因此无法知道 dll 包含的功能。
1:我听说显式链接是一种不好的做法。这是正确的吗?
2:我应该主要关注隐式链接吗?
3:显然,我对 DLL 的了解很少,关于链接 dll 的隐式和显式方式,我没有看到更多好的和坏的方面吗?
4:由于我打算制作游戏,将sprite-sheet放入dll中以使用指针加载一次纹理是一个好习惯吗?
【问题讨论】:
-
你弄错了,真的最好实际尝试一下。磁盘空间没有区别,在这两种情况下您只需要部署 DLL。显式需要在您的开发机器上更多 空间,您无法绕过声明函数指针类型和挖掘导出的代码的需要。很难维护的非常痛苦的代码,尤其是对于像 SFML 这样的大型库。您只使用显式因为 DLL 可能没有导出。 SFML 永远不需要,因为复制 DLL 的是您。