这就是我所拥有的:我的应用程序是用Qt 4.5静态编译的。我正在使用qsqloci
插件(静态链接),它动态加载oracle库(oci.dll
,...)。
我希望能够检查是否存在oracle DLL,并根据结果使用插件功能与否。
问题:
答案 0 :(得分:4)
您可以使用QLibrary
检查DLL是否可用。
加载库后,您将加载插件,而不是开始使用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
。
manual州:
请注意,如果您的应用程序与Qt静态链接,则无法使用QPluginLoader。在这种情况下,您还必须静态链接到插件。如果需要在静态链接的应用程序中加载动态库,则可以使用QLibrary。