『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

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

MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)
在之前的 MapGIS K9三维TDE平台插件开发环境配置 文章里面,我介绍了使用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的命名空间。

 

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

 

#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文件里面导出的函数dllStartPlugindllStopPlugin在这里实现了。

 

       总结:

 

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

 

       关于这个demo

 

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

 

 

 

       猛击这里这里下载这个demo吧。

 

       解压密码:malagis.com

      京ICP备2025132830号-1 京公网安备 号