ctk加载插件「建议收藏」
插件 建议 收藏 加载 CTK
2023-06-13 09:12:00 时间
大家好,又见面了,我是你们的朋友全栈君。
用ctk加载插件有两种方法,第一种需要自己创建ctkPluginFramework:
//ctk plugin
ctkPluginFrameworkFactory* ctkFrameWorkFactory = new ctkPluginFrameworkFactory;
QSharedPointer<ctkPluginFramework> framework = ctkFrameWorkFactory->getFramework();
try
{
framework->init();
framework->start();
qDebug() << "[Info] ctkPluginFramework start ...";
}
catch (const ctkPluginException &Exception)
{
qDebug() << QObject::tr("Failed to initialize the plug-in framework: ") << Exception.what();
return 1;
}
//install plugin
ctkPluginContext* pluginContext = framework->getPluginContext();
QSharedPointer<ctkPlugin> Plugin = pluginContext->installPlugin(QUrl::fromLocalFile("。。/liborg_ctk_example.dll"));
Plugin->start(ctkPlugin::START_TRANSIENT);
还有一种比较简单的利用ctkPluginFrameworkLauncher
ctkPluginFrameworkLauncher::addSearchPath(path, true); //添加插件的搜索路径
bool SUCCEEDED;
try
{
SUCCEEDED = ctkPluginFrameworkLauncher::start(pluginSymbolicName); //pluginSybolName为插件的符号名,比如在MF文件中的 Plugin-SymbolicName: org.ctk.example,这里就是“org.ctk.example”
}
catch (ctkPluginException &e)
{
std::cout << "Error in " << pluginSymbolicName << " " << e.message().toStdString() << std::endl;
const ctkException* e2 = e.cause();
if (e2)
std::cout << e2->message().toStdString() << std::endl;
return LOAD_FAILED;
}
catch (ctkRuntimeException &e)
{
std::cout << "Error in " << pluginSymbolicName << " " << e.what() << std::endl;
const ctkException* e2 = e.cause();
if (e2)
std::cout << e2->message().toStdString() << std::endl;
return LOAD_FAILED;
}
catch (...)
{
std::cout << "Error in " << pluginSymbolicName << std::endl;
return UNKNOW_EXCEPTION;
}
获取pluginContext用下面方法
ctkPluginFrameworkLauncher::getPluginContext()
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134812.html原文链接:https://javaforall.cn
相关文章
- jenkins踩坑——插件冲突「建议收藏」
- 基于Chrome浏览器的HackBar_v2.2.6插件的安装与注册「建议收藏」
- PyCharm插件安装「建议收藏」
- Atom装逼神器activate-power-mode插件安装教程「建议收藏」
- Portraiture Mac(PS磨皮滤镜插件) v3.5.1已注册版「建议收藏」
- Vue中封装复制粘贴插件Clipboard
- Lombok插件的安装和使用「建议收藏」
- lombok插件介绍「建议收藏」
- UE4->Plugin 认识UE4插件 1「建议收藏」
- maven项目使用mybatis插件Free Mybatis plugin「建议收藏」
- WordPress分页插件WP-PageNavi手工安装方法
- 【Android 插件化】“ 插桩式 “ 插件化框架 ( 注入上下文的使用 )
- 【Android 插件化】插件化框架整理
- Waves 14 Complete for Mac(Waves混音效果全套插件)
- jQuery插件分享之分页插件jqPagination