gpt4 book ai didi

c++ - Qt:加载 dll 失败时的不同情况

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:16 25 4
gpt4 key购买 nike

我相信我要完成的任务相当简单,但我仍然遇到了问题,因此非常感谢您的帮助。

我有一个基类(在头文件和源文件中),我将其子类化两次作为我程序的一部分,我们称它为 WorkerBase。其中一个子类 WorkerA 相当简单,而另一个子类 WorkerB 依赖于第三方库,这些库依赖于程序运行的硬件。如果硬件不合适或缺少这些库,则使用该子类会失败。在这种情况下,我想使用 WorkerA

那么,基本上,我如何检测库加载失败?现在,如果缺少库,主程序就不会启动。

我正在使用 Qt,该程序将仅适用于 Windows。谢谢。

最佳答案

我认为,最简单的解决方案是将 Woker 移至插件。

您可以在运行时使用QPluginLoader 动态加载插件。

然后,虽然 WorkerB 将静态链接到第 3 方库,但如果不满足 WorkerB 所需的依赖项,则 WorkerB 插件将只是加载失败,您将使用 QPluginLoader 捕获它并改为加载 WorkerA 插件。

另一种方法是使用 QLibrary(和 QPluginLoader 作为引用实现)重新发明轮子您自己的插件系统。

关于c++ - Qt:加载 dll 失败时的不同情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com