环境:win11 + vs2015 + qt5.12.12
代码正确,无法解析到插件接口 plugin->instance(); 返回为空。
猜测:qt5.12.12的debug版本下有bug。后续定位问题。
解决方法:调试时使用的debug,无法解析插件接口;切换到release下进行调试,可以解析到插件接口。
代码如下
// 接口类
class TestInterface
{
public:virtual ~TestInterface() {}virtual int test() = 0;
};
Q_DECLARE_INTERFACE(TestInterface, "TestInterface.sdfsdfds")// 接口实现类
class DllPlugin : public QObject, public TestInterface
{Q_OBJECTQ_PLUGIN_METADATA(IID "TestInterface.BrushInterface")Q_INTERFACES(TestInterface)public:DllPlugin();virtual int test();
};// 插件加载代码
int main(int argc, char *argv[])
{QPluginLoader* plugin = new QPluginLoader("dllplugin.dll");QObject* Instance = plugin->instance();QString dd = plugin->errorString();
}