在之前的 MapGIS K9三维TDE平台插件开发环境配置 文章里面,我介绍了使用MapGIS K9 三维TDE平台开发插件的环境配置,但是仅仅配置好环境只是一个开始,相信很多读者已经像小编我一样摩拳擦掌了吧,下面小编我就献丑给各位读者讲一下使用MapGIS K9 三维TDE平台开发一个会说Hello World 的简单三维插件程序。
STEP 1 插件导出函数
在MapGIS K9 三维TDE平台里面开发三维插件,这是必须的一步,就是设置导出函数。
打开你所建立的工程(这里我以之前MapGIS K9三维TDE平台插件开发环境配置里面所建立的工程为例)里面的.def文件。写入以下代码:
- ;MyDemo.def : 声明DLL 的模块参数。
- ;LIBRARY "MyDemo"
- EXPORTS
- ; 此处可以是显式导出
- dllStartPlugin @1
- dllStopPlugin @2
STEP 2 新建插件类
在解决方案上右击,选择添加—类。选择C++类,类命名为MyPlugin,基类为:FunctionPluginBase。
![](https://i-blog.csdnimg.cn/blog_migrate/15fbffce9222861ff47fb87a0590c371.png)
STEP 3 修改头文件
包含头文件TDEFunctionPluginBase7.h,并且使用MapGIS K9 三维TDE的命名空间。
并且添加两个函数——onExecute和registerFunctions函数,全部代码如下:
- #pragma once
- #include "TDEFunctionPluginBase7.h"
- using namespace TDE;
- class MyPlug :public FunctionPluginBase
- {
- public:
- MyPlug(void);
- ~MyPlug(void);
- public:
- virtual void onExecute(const String& name, WPARAM wParam, LPARAM lParam) ;
- // 派生插件必须在此函数中完成写入功能列表的工作
- virtual void registerFunctions(void) ;
- };
STEP 4 在类的CPP文件里响应函数
给插件功能起一个名字,将下面的代码放在头文件的下面声明即可。
- #include "StdAfx.h"
- #include "MyPlug.h"
- const String MyFirDomeName="MyFirstFun";
- MyPlug::MyPlug(void)
- {
- mClassName=mHandle="MyFirstDemo";
- }
- void MyPlug::onExecute(const String& name, WPARAM wParam, LPARAM lParam)
- {
- if(name==MyFirDomeName)
- {
- AfxMessageBox("Hello TDE World!");
- }
- }
- void MyPlug::registerFunctions(void)
- {
- FunctionItemGroup* pp=getRootItem();
- pp->appendItem(FIT_ITEM,MyFirDomeName);
- }
STEP 5 启动插件
在默认工程cpp文件里面实例化刚刚写的插件进行启用即可。
在MyDemo.cpp文件里面包含一下头文件:
- #include "stdafx.h"
- #include "MyDemo.h"
- #include "MyPlug.h"
- #include "TDEFunctionPluginManager7.h"
- MyPlug *pg=NULL;
- long WINAPI dllStartPlugin()
- {
- pg=new MyPlug();
- FunctionPluginManager::getSingletonPtr()->addFunctionPlugin(pg);
- return 1;
- }
- long WINAPI dllStopPlugin()
- {
- G3D_DELETE(pg);//删除对象释放内存
- return 1;
- }
总结:
这就是在MapGIS K9三维TDE平台下开发第一个Hello World的全过程,总体来说流程还是蛮清晰的,希望这个程序对刚刚入门的童鞋有所帮助。
关于这个demo
对了,忘了给大家看看这个Demo的效果图,效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/26a148df2578fc346ce857ff59ba0d97.png)