MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)
2014-05-23 09:22
387 查看
在之前的 MapGIS
K9三维TDE平台插件开发环境配置 文章里面,我介绍了使用MapGIS
K9 三维TDE平台开发插件的环境配置,但是仅仅配置好环境只是一个开始,相信很多读者已经像小编我一样摩拳擦掌了吧,下面小编我就献丑给各位读者讲一下使用MapGIS
K9 三维TDE平台开发一个会说Hello World
的简单三维插件程序。
在MapGIS K9 三维TDE平台里面开发三维插件,这是必须的一步,就是设置导出函数。
打开你所建立的工程(这里我以之前MapGIS
K9三维TDE平台插件开发环境配置里面所建立的工程为例)里面的.def文件。写入以下代码:
;MyDemo.def
:
声明DLL
的模块参数。
;LIBRARY
"MyDemo"
EXPORTS
;
此处可以是显式导出
dllStartPlugin
@1
dllStopPlugin
@2
在解决方案上右击,选择添加—类。选择C++类,类命名为MyPlugin,基类为:FunctionPluginBase。
包含头文件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)
;
};
给插件功能起一个名字,将下面的代码放在头文件的下面声明即可。
#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);
}
在默认工程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的效果图,效果如下:
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平台下开发第一个HelloWorld的全过程,总体来说流程还是蛮清晰的,希望这个程序对刚刚入门的童鞋有所帮助。
关于这个demo
对了,忘了给大家看看这个Demo的效果图,效果如下:相关文章推荐
- MapGIS K9三维TDE平台插件开发调试方法
- MapGIS K9三维TDE平台插件开发环境配置
- MapGIS K9 三维TDE平台中实体的可见与不可见
- MapGIS K9三维TDE平台实现动态光标效果
- 【原创】MapGIS K9 三维二次开发入门
- 【原创】MapGIS K9 三维二次开发入门
- J2ME程序开发新手入门九大要点
- J2ME程序开发新手入门要领
- Eclipse插件开发之新手入门
- J2ME程序开发新手入门要领
- J2ME程序开发新手入门要领
- J2ME程序开发新手入门九大要点【转】
- J2ME程序开发新手入门九大要点
- J2ME程序开发新手入门九大要点
- 开发宝典:程序开发新手入门之Jave ME
- J2ME程序开发新手入门要领
- 开发宝典:程序开发新手入门之D语言
- Eclipse插件开发之新手入门
- J2ME程序开发新手入门九大要点
- Eclipse插件开发之新手入门