MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)
在之前的 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。
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";
- }
响应onExecute函数,代码如下:
- void MyPlug::onExecute(const String& name, WPARAM wParam, LPARAM lParam)
- {
- if(name==MyFirDomeName)
- {
- AfxMessageBox("Hello TDE World!");
- }
- }
响应registerFunctions函数,代码如下:
- 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;
- }
其中我们可以看到在.def文件里面导出的函数dllStartPlugin和dllStopPlugin在这里实现了。
总结:
这就是在MapGIS K9三维TDE平台下开发第一个Hello World的全过程,总体来说流程还是蛮清晰的,希望这个程序对刚刚入门的童鞋有所帮助。
关于这个demo
对了,忘了给大家看看这个Demo的效果图,效果如下:
MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)相关推荐
- MapGIS K9三维TDE平台插件开发调试方法
记得之前小编我发过两篇文章,是关于MapGIS K9三维TDE平台插件开发环境配置 和MapGIS K9三维TDE平台插件开发第一个插件程序,不知道是否有读者按照我的方法去做了尝试,不过后来小编翻看邮 ...
- MapGIS K9 三维TDE平台中实体的可见与不可见
通过简单的MapGIS K9三维TDE方面的学习,最近感觉有点手心痒痒,索性抽得点时间去写一个简单的三维模型,没有加入材质和灯光等相关属性,这是一个简单的正方体,如下图: 可以看出,我这个MapGIS ...
- 萌新入门第三天,css第一天,小白新手入门必看
首先css规范使用 体验CSS语法规范 要写在head最下方,虽然不影响使用,但是写在这里最方便观看 Css语法格式 选择器 { 属性: 值; 属性: 值; } 选择器之间和属性和值之间要保留空格 选 ...
- Node.js 全网最详细教程 (第一章:Node学习入门必看教程)
1:Node的学前必知: 1: 在学习node之前,想必你应该学习过HTML,CSS,JavaScript 2: 浏览器中的JavaScript由两部分组成:JS核心语法和WebAPI JS核心语法 ...
- 小程序开发运营必看:微信小程序平台运营规范
一.原则及相关说明 微信最核心的价值,就是连接--提供一对一.一对多和多对多的连接方式,从而实现人与人.人与智能终端.人与社交化娱乐.人与硬件设备的连接,同时连接服务.资讯.商业. 微信团队一 ...
- [原创插件] [服务端插件] [新手开发者必看]优秀插件开发教程列表 欢迎回复讨论
插件开发者专享套餐 声明:此集锦意在提升插件开发者的姿势水平, 插件版版主邀请编程版的海螺编写的,并非错版,请勿举报. 入门以前 在开始写插件之前,你需要知道插件基于 Java,所以请先学习 Java ...
- java创建mysql sche_爱可生详解MySQL|入门必看DBLE中间件使用指南第一章:初识DBLE...
目录: 一.DBLE项目资料 二.环境准备 安装JDK环境 三.安装DBLE 四.配置DBLE 应用场景一:数据拆分 应用场景二:读写分离 五.总结 DBLE 项目资料 DBLE 是企业级开源分布式中 ...
- 【FPGA学习笔记】 第一章: PLD/FPGA新手入门
第一章 PLD/FPGA新手入门 1. 可编程逻辑器件的发展历程 当今社会是数字化的社会,是数字集成电路广泛应用的社会.数字集成电路本身在不断地进行更新换代.它由早期的电 ...
- mapgis中6.7属性结构_【技术】这世界的完美,原本一直在我们眼前 ——MapGIS打造全空间GIS平台...
所谓"世界",世为"时间",界为"空间".无垠大地.浩瀚苍穹,世界上的任何事物都被牢牢打上了时空的烙印.GIS作为获取.存储.分析和管理时空 ...
最新文章
- Linux: what's the difference between /proc/self and /proc/$$?
- 构建针对 iOS 和 Android 的原生扩展
- linux 用脚本建分区,脚本创建磁盘分区
- leetcode - 111. 二叉树的最小深度
- Comcast Xfinity家庭安全系统被曝严重漏洞
- android activity获取dialog对象,Android:从DialogFragment调用Activity的功能
- 算法4中数学模型练习题分析
- SQL注入中information_schema的作用
- 给剧荒的你:Python高分日剧刷剧指南
- c语言统计出现个数,C语言统计数字出现的个数
- NDK Caused by: java.lang.UnsatisfiedLinkError:
- 最佳平方逼近 matlab,matlab最佳平方逼近
- 计算机系统——信息的表示与处理
- 拼多多运营该怎么做你知道吗?
- iptables配置SNAT实现共享上网
- [vSphere]VCSA控制台修改root口令及关闭特定报警等操作
- Henry前端笔记之 HTML相关
- 2021 CVVD首届车联网漏洞挖掘赛线上初赛 Writeup
- php 微信支付闪了一下,php,_微信公众号JS API支付,安卓没有效果(会闪一下就消失了),php - phpStudy...
- python实现对数转换_利用opencv在python平台上实现二值变换,伽马变换,对数变换,补色变换等...