ctk加载插件「建议收藏」

ctk加载插件「建议收藏」用ctk加载插件有两种方法,第一种需要自己创建ctkPluginFramework://ctkpluginctkPluginFrameworkFactory*ctkFrameWorkFactory=newctkPluginFrameworkFactory;QSharedPointerframework=ctkFrameWorkFactory->getFram

大家好,又见面了,我是你们的朋友全栈君。

用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.net/134812.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何利用eclipse创建一个java web项目?「建议收藏」

    如何利用eclipse创建一个java web项目?「建议收藏」1.在左侧空白处,右键选择New->DynamicWebProject2.若New的选择列表中没有DynamicWebProject,则选择Others,然后输入dynamic(一般输入dy就可以),选择DynamicWebProject3.输入项目名称,选择运行时环境(中间件环境),选择web相应的版本。4.点击Finish

    2022年7月19日
    21
  • mysql数据库入门

    在很多地方都有人提到MySQL这个数据,之前没有接触过的mysql数据库的童鞋们可以跟我一起走进mysql的世界。http://hovertree.com/menu/mysql/安装我就不多说了,

    2021年12月23日
    45
  • 感知机的对偶形式「建议收藏」

    感知机的对偶形式「建议收藏」首先声明感知机的对偶形式与原始形式并没有多大的区别,运算的过程都是一样的,但通过对偶形式会事先计算好一些步骤的结果并存储到Gray矩阵中,因此可以加快一些运算速度,数据越多节省的计算次数就越多,因此比原始形式更加的优化。首先我们介绍一下感知机的原始形式,之后与其对比。感知机感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,分别去+1和-1两值。感知机对应与输入空间中将实例划

    2022年10月20日
    0
  • poetry下载_k8s安装工具

    poetry下载_k8s安装工具介绍Poetry是Python中的依赖管理和打包工具,当然它也可以配置虚拟环境。它允许您声明项目所依赖的库,并为您管理(安装/更新)它们。之前一直使用virtualenvwrapper管理虚拟

    2022年8月7日
    4
  • 继续推广我的新博客xysay:http://www.xysay.com/

    继续推广我的新博客xysay:http://www.xysay.com/

    2021年11月23日
    38
  • 华为悦盒ec6108v9a怎么刷机_华为悦盒官方固件

    华为悦盒ec6108v9a怎么刷机_华为悦盒官方固件华为悦盒EC6108V9A一、产品型号二、工具准备与资料下载1.[当贝网站教程及工具下载](https://www.znds.com/jc/article/7020-1.html)(此网站的工具可以用,但当贝的教程极其混乱,仅供动手者参考)2.固件路径三、刷机教程1.进入盒子的Androidsystemrecovery<3e>2.清除数据3.选择Applyupdatefromexternalstorage四、盒子默认密码五、常用应用一、产品型号名称型号华为悦

    2022年10月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号