QDir dir; // каталог плагинов QString name; // имя очередного плагина с расширением...... QPluginLoader* PluginLoader = new QPluginLoader( dir.absoluteFilePath( name ) ); if( PluginLoader == 0 ) {....не важно return;} QObject* plugin = PluginLoader->instance(); if( plugin ) { ........ инициализация и пр. } else QMessageBox::critical(0,tr("ОШИБКА ПРИ ЗАГРУЗКЕ!"), dir.absoluteFilePath( name ) );
QFile x(dir.absoluteFilePath( name )); if(!x.open(QIODevice::ReadOnly)) QMessageBox::critical(0,"not open",dir.absoluteFilePath( name )); else { int s; if( ! (s = x.readAll().size()) ) QMessageBox::critical(0,"not read",dir.absoluteFilePath( name )); else {QFile f("plugs.txt"); f.open(QIODevice::Append); f.write((dir.absoluteFilePath( name ) + " success " + QString::number(s) + "\n").toAscii()); f.close();} x.close();}
foreach( QString plugname, dir.entryList(QDir::Files,QDir::Name) ) { if( QLibrary::isLibrary( plugname ) ) loadPlugin( dir, plugname ); }