我为我的应用程序创建了一个插件。如果我不在我的代码中使用 GDAL 库,我的应用程序可以使用这个插件(QPlugin 加载它)并且它工作正常。但是,如果我使用 GDAL 库中的类,QPluginLoader
则无法加载它并且该errorstring()
方法返回../serverplugin.dll Can't find module
.
在插件 DLL 中有两个导出的符号(我用 Dependency walker 找到了它们qt_plugin_instance
)。在内部使用该类与导出到 DLL 的 C 符号进行交互。如果我不使用 GDAL,我一开始在所有插件中只有两个导出的符号。当我使用 GDAL 时,这两个符号被移动到导出符号的大列表的末尾。也许这两个导出的符号应该在开头。qt_plugin_query_verification_data
QPluginLoader
QLibrary
我究竟做错了什么?