【问题标题】:Is there a benefit to using LoadLibrary instead of linking?使用 LoadLibrary 而不是链接有好处吗?
【发布时间】:2014-01-13 18:57:05
【问题描述】:

使用 dependency walker 我注意到一些应用程序肯定使用 Direct3D 11,但只链接到 Direct3D 9 的库 dll。

我是否通过链接有所收获?使用 LoadLibrary 有什么好处吗?

为什么我可以选择一种方法而不是另一种?

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于基本的 CS 科目,可以通过搜索回答
  • 你是对的。我想当我写这个问题时,是在我未能提出正确的搜索词之后。谢谢你的温柔踢。 :D
  • 我也刚刚意识到这将是应用程序链接到 Direct3D 9 而不是 11 的原因...因为 v9 是最低要求,如果您安装了 11,他们可以升级体验-- 而不是致命的发射。

标签: windows visual-c++ dll


【解决方案1】:

我认为,如果您将 DLL 静态链接到您的应用程序,如果缺少任何 DLL,您甚至无法启动该应用程序。在手动 LoadLibrary 的情况下,应用程序可以启动,检查 DLL 可用性并将消息写入日志,向用户显示良好的错误描述,甚至使用另一个 DLL 集,例如另一个版本的 DLL 具有不同的名称,而不是最新版本。

【讨论】:

  • 大部分是正确的,尤其是为什么有时可能会简化 loadlibrary 的基本原理。不利的一面是,动态链接通常实施起来更复杂。如果只是为了显示错误消息,即使使用静态链接库也有办法做到这一点。
猜你喜欢
  • 2011-12-09
  • 1970-01-01
  • 2012-05-18
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
相关资源
最近更新 更多