这就是我所拥有的: 我的应用程序是用 Qt 4.5 静态编译的。我正在使用qsqloci
插件(静态链接),它动态加载 oracle 库(oci.dll
,...)。
我希望能够检查 oracle DLL 的存在,并根据结果使用插件功能。
还有问题:
- 静态链接的插件有可能吗?
- 如果不是,是否可以动态链接插件(应用程序的其余部分仍然与 Qt 静态链接)?
- 如果没有,有可能吗?
这就是我所拥有的: 我的应用程序是用 Qt 4.5 静态编译的。我正在使用qsqloci
插件(静态链接),它动态加载 oracle 库(oci.dll
,...)。
我希望能够检查 oracle DLL 的存在,并根据结果使用插件功能。
还有问题:
您可以使用 . 检查 DLL 是否可用QLibrary
。
QLibrary::resolve
加载库后,您将加载插件,而不是开始使用。
QLibrary lib("oci"); // QLibrary will try the platform's library suffix
if (! lib.load()) {
qDebug() << "Library load error:" << lib.errorString();
return;
}
// load plugin
你不能QPluginLoader
用来加载插件,因为你是静态链接的,但你应该可以使用QLibrary
.
手册指出:
请注意,如果您的应用程序与 Qt 静态链接,则无法使用 QPluginLoader。在这种情况下,您还必须静态链接到插件。如果您需要在静态链接的应用程序中加载动态库,您可以使用 QLibrary。