我使用QT4.7版本,在加载插件的时候,总是加载失败。提示信息是:加载插件错误。高手指点哈!
代码如下:
void Dialog::on_pushButton_Plugin_clicked()
{
if( PluginLoader == NULL) {
QString PluginName = QFileDialog::getOpenFileName(this, tr("Open Files..."), "", tr("DLL Files (*.dll);; DLL Files (*.dll)"));
if( PluginName.length() == 0)
return;
PluginLoader = new QPluginLoader(PluginName);
if(PluginLoader == NULL)
{
QMessageBox::critical(this, "错误", QString("加载插件失败222"));
return;
}
//该函数会自动加载插件 //注意加载插件比较耗时
QObject *plugin = PluginLoader->instance();
if(plugin)
{
//必须使用qobject_cast做类型转换
MyPlugin* MyInterface = qobject_cast<MyPlugin*>(plugin);
if(MyInterface)
{
PluginInterface = MyInterface;
#if 1 //for test
QString src("I LOVE QT");
QString des;
PluginInterface->ConvertSend(des, src);
PluginInterface->ConvertRecv(des, src);
#endif
ui->pushButton_Plugin->setText("卸载(&D)");
}
else
{
QMessageBox::critical(this, "错误", QString("未找到插件"));
return;
}
}
else
{
QMessageBox::critical(this, "错误", QString("加载插件错误!"));
}
}
else
{
PluginLoader->unload();
delete PluginLoader;
PluginLoader = NULL;
ui->pushButton_Plugin->setText("插件(&P)");
}
}