MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)

在之前的 MapGIS K9三维TDE平台插件开发环境配置 文章里面,我介绍了使用MapGIS K9 三维TDE平台开发插件的环境配置,但是仅仅配置好环境只是一个开始,相信很多读者已经像小编我一样摩拳擦掌了吧,下面小编我就献丑给各位读者讲一下使用MapGIS K9 三维TDE平台开发一个会说Hello World 的简单三维插件程序。

STEP 1 插件导出函数

MapGIS K9 三维TDE平台里面开发三维插件,这是必须的一步,就是设置导出函数。

打开你所建立的工程(这里我以之前MapGIS K9三维TDE平台插件开发环境配置里面所建立的工程为例)里面的.def文件。写入以下代码:

  1. ;MyDemo.def : 声明DLL 的模块参数。
  2.  
  3. ;LIBRARY "MyDemo"
  4.  
  5. EXPORTS
  6. ; 此处可以是显式导出
  7. dllStartPlugin @1
  8. dllStopPlugin @2
STEP 2 新建插件类

在解决方案上右击,选择添加—类。选择C++类,类命名为MyPlugin,基类为:FunctionPluginBase。

STEP 3 修改头文件

包含头文件TDEFunctionPluginBase7.h,并且使用MapGIS K9 三维TDE的命名空间。

并且添加两个函数——onExecute和registerFunctions函数,全部代码如下:

  1. #pragma once
  2. #include "TDEFunctionPluginBase7.h"
  3. using namespace TDE;
  4. class MyPlug :public FunctionPluginBase
  5. {
  6. public:
  7. MyPlug(void);
  8. ~MyPlug(void);
  9. public:
  10. virtual void onExecute(const String& name, WPARAM wParam, LPARAM lParam) ;
  11. // 派生插件必须在此函数中完成写入功能列表的工作
  12. virtual void registerFunctions(void) ;
  13. };
  14.  
STEP 4 在类的CPP文件里响应函数

给插件功能起一个名字,将下面的代码放在头文件的下面声明即可。

  1. #include "StdAfx.h"
  2. #include "MyPlug.h"
  3. const String MyFirDomeName="MyFirstFun";
再给插件本身起一个名字,放在构造函数里面,代码如下:

  1. MyPlug::MyPlug(void)
  2. {
  3. mClassName=mHandle="MyFirstDemo";
  4. }
响应onExecute函数,代码如下:

  1. void MyPlug::onExecute(const String& name, WPARAM wParam, LPARAM lParam)
  2. {
  3. if(name==MyFirDomeName)
  4. {
  5. AfxMessageBox("Hello TDE World!");
  6. }
  7. }
响应registerFunctions函数,代码如下:

  1. void MyPlug::registerFunctions(void)
  2. {
  3. FunctionItemGroup* pp=getRootItem();
  4. pp->appendItem(FIT_ITEM,MyFirDomeName);
  5. }
STEP 5 启动插件

在默认工程cpp文件里面实例化刚刚写的插件进行启用即可。

在MyDemo.cpp文件里面包含一下头文件:

  1. #include "stdafx.h"
  2. #include "MyDemo.h"
  3. #include "MyPlug.h"
  4. #include "TDEFunctionPluginManager7.h"
接下来就是用刚刚写的类实例化一个对象,并且进行调用了,代码如下:

  1. MyPlug *pg=NULL;
  2. long WINAPI dllStartPlugin()
  3. {
  4. pg=new MyPlug();
  5. FunctionPluginManager::getSingletonPtr()->addFunctionPlugin(pg);
  6. return 1;
  7. }
  8.  
  9. long WINAPI dllStopPlugin()
  10. {
  11. G3D_DELETE(pg);//删除对象释放内存
  12. return 1;
  13. }
其中我们可以看到在.def文件里面导出的函数dllStartPlugin和dllStopPlugin在这里实现了。

总结:

这就是在MapGIS K9三维TDE平台下开发第一个Hello World的全过程,总体来说流程还是蛮清晰的,希望这个程序对刚刚入门的童鞋有所帮助。

关于这个demo

对了,忘了给大家看看这个Demo的效果图,效果如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值