文章目录
- 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),结果如下图所示:
实现类必须继承刚才定义的抽象类,并且把抽象类的纯虚接口都实现。并且在实现类的中必须要添加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、打开自定义工具箱
4.3、点击自定义命令
5、测试插件
将生成的插件复制到plugins文件夹中,然后启动软件,在命令行中执行rasterTestClass命令,就会出现如下图所示的结果,到此表示注册成功。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!