【问题标题】:Dll issue while launching the application启动应用程序时的 dll 问题
【发布时间】:2012-08-10 11:14:04
【问题描述】:

我在我的应用程序中使用一个 dll 来包含该 dll 提供的功能。我在安装一个 msi 后得到这个 dll。 但是在我的应用程序中,我有一个要求,比如如果用户没有安装那个 msi,那么我们必须显示一条警告消息(例如 msi 没有安装,我已经在我的应用程序的 main() 中实现了这个代码)并且必须退出应用程序。

但问题是,如果用户没有安装 msi,那么在启动应用程序本身时,它会显示一条错误消息,因为它无法获取 dll,而这一次控制甚至没有进入我拥有的 main()编写了此 msi 检查的代码(通过注册表项)。

有没有什么有效的方法来解决这个问题..

【问题讨论】:

  • 所以你是说你的main() 在你没有 dll 的时候没有被执行?我们说的是main(),而不是DllMain(),对吧?
  • 是的。我想要的是即使 dll 不存在,我在 int main(){...} 中编写的代码也应该被执行。但正如我上面提到的,控件甚至没有出现在我的 main() 中,因为它在启动应用程序期间显示了问题。

标签: c++ c++11 c++builder


【解决方案1】:

考虑延迟加载 DLL(项目 -> 选项 -> 高级链接器)。

这将允许您的应用在缺少 DLL 时加载。

【讨论】:

  • 但在这种情况下,我得到了相应 .lib 文件的致命错误。还有其他方法吗?
  • @vivek 这种情况下的确切错误是什么? .lib 文件通常链接到可执行文件中,因此我不希望看到有关 .lib 文件的运行时错误。
猜你喜欢
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
相关资源
最近更新 更多