您的位置:首页 > 其它

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

2014-05-23 09:22 387 查看
在之前的 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的效果图,效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: