我使用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)");
     }
}