#include "unixpluginloader.h" #include #include #include unixPluginLoader::unixPluginLoader(const QString &libPath) { SocExplorerEngine::message("unixPluginLoader::unixPluginLoader","try to open "+libPath,3); dlHandle = dlopen(libPath.toStdString().c_str(),RTLD_LAZY|RTLD_GLOBAL); if(dlHandle==NULL) SocExplorerEngine::message("unixPluginLoader::unixPluginLoader",QString("Failed ") + dlerror(),3); else SocExplorerEngine::message("unixPluginLoader::unixPluginLoader","Success " ,3); this->libPath = libPath; } void *unixPluginLoader::resolve(const QString &symbol) { if(dlHandle!=NULL) { SocExplorerEngine::message("unixPluginLoader::resolve","try to resolve "+symbol+" in "+libPath ,3); void* sym = dlsym (dlHandle, symbol.toStdString().c_str()); if(sym==NULL) SocExplorerEngine::message("unixPluginLoader::resolve",QString("Failed")+ dlerror() ,3); else SocExplorerEngine::message("unixPluginLoader::resolve","Success",3); return sym; } return NULL; } void unixPluginLoader::close() { if(dlHandle!=NULL) { dlclose(dlHandle); SocExplorerEngine::message("unixPluginLoader::close",dlerror(),3); } }