编写软件第一个插件(Hello World)

文章目录

  • 1、插件环境搭建可以看前面一篇博客
  • 2、注册命令
    • 2.1、添加函数
    • 2.2、调用程序初始化函数
  • 3、注册类
    • 3.1、添加接口类文件
    • 3.2、添加类实现文件
      • 3.2.1、实现类头文件
      • 3.2.2、实现类源文件
    • 3.3、注册类
      • 3.3.1、普通类注册
      • 3.3.2、单例类注册
      • 3.3.2、多个类注册
  • 4、将命令添加到工具箱
  • 4.1、打开自定义工具箱
  • 4.2、选择要添加的命令
  • 4.3、点击自定义命令
  • 4.4、工具箱中查看
  • 5、测试插件

1、插件环境搭建可以看前面一篇博客

2、注册命令

2.1、添加函数

1、在rastertestcmd.h添加初始化函数以及功能函数的声明

2、在rastertestcmd.cpp中添加实现

rasterTestCmd函数中,我们用了iDoxCmdLine中的print接口打印输出的信息在软件的命令行中。
initApplication函数中,调用了IDoxCommand中的registerCommand接口来进行命令注册。其中第一个参数是表示命令组的命令,第二参数是命令名称,第三个参数就是注册功能函数

2.2、调用程序初始化函数

在seed_rastertest.cpp文件的attachDoxygen函数中调用初始化函数

3、到这里注册命令结束。编译完成之后,将seed_rastertest.dll放到plugins文件夹下然后运行软件,在命令行中执行刚才注册的命令名称(rastertestcmd),结果如下图所示:

编写软件第一个插件(Hello World)

3.2、添加类实现文件

实现类必须继承刚才定义的抽象类,并且把抽象类的纯虚接口都实现。并且在实现类的中必须要添加REGISTER_ACTUALIZE(RasterTestClass, IRasterTestClass) 这一句,RasterTestClass是实现类类名,IRasterTestClass是抽象类,也就是基类。

3.2.1、实现类头文件

3.2.2、实现类源文件

3.3、注册类

添加完实现类之后,直接编译,如果通过,那么说明前面的步骤都没有问题,如果出现如下错误:
error C2039: “InterList”: 不是“dox::NormalObject”的成员
note: 参见“dox::NormalObject”的声明
error C3861: “InterList”: 找不到标识符
说明在实现类的头文件中没有添加REGISTER_ACTUALIZE(RasterTestClass, IRasterTestClass)
添加完之后,就可以编译通过,接下来再回到seed_rastertest. cpp文件中进行对类的注册。

3.3.1、普通类注册

3.3.2、单例类注册

3.3.2、多个类注册

4、将命令添加到工具箱

4.1、打开自定义工具箱

编写软件第一个插件(Hello World)

4.3、点击自定义命令

编写软件第一个插件(Hello World)

5、测试插件

将生成的插件复制到plugins文件夹中,然后启动软件,在命令行中执行rasterTestClass命令,就会出现如下图所示的结果,到此表示注册成功。

编写软件第一个插件(Hello World)

来源:杨发荷

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月10日
下一篇 2020年9月10日

相关推荐