对于软件开发人员来说,VC是个功能强大的软件包,类的观念的引入,一方面把C语言中原有的函数归并起来,使他们更方便使用,另一方面,编辑人员可以将自己的函数集成到类中,使程序结构清晰明了。
MapInfo是一种桌面地理信息系统软件,系统精炼,硬、软件平台适用性好,实用性强。MapInfo为用户提供了完整的绘图和数字化工具,包括数字化仪接口、绘图和编辑工具。
MapInfo的二次开发工具MapBasic,基于Windows下最流行的快速开发工具Visual Basic,可直接通过DDE、DLL来与Window应用程序合作的交换数据,并可直接在MapBasic中使用VB的Window API声明,并且MapBasic建立在MapInfo内核上,它能实现几乎所有MapInfo的功能,并对结合各行业的实际要求,对MapInfo进行扩展。
如何将VC和MapBasic 这两种软件结合起来,更加高效的开发设计系统,下面通过绘制一幅Mapinfo格式的曲线图层来介绍在VC++6.0中如何对Mapbasic进行二次开发 。
1.1 Mapbasic编程环境组成简析。
Mapbasic编程环境由Mapinfo绘图环境和Mapbasic语言环境组成。其中mapinfow.h和mapinfow.cpp构成mapinfo环境资源文件,宿主语言环境VC根据这些资源文件来构造类;mapbasic.h定义了语言使用环境,具体是将mapbasic工具软件中菜单命令以宏定义方式组成属性供VC调用。同时在mapinfow.h中引用声明了mapbasic.h,这样就将绘图环境和语言环境在VC中有效的结合起来。
1.2引入资源文件,初始化mapbasic编程环境基类。
(1)将mapinfow.h、mapbasic.h、mapinfow.cpp拷贝入该工程目录中。关于mapbasic编程工具的属性宏定义在头文件mapbasic.h中声明,在mapinfow.h中声明了mapbasic编程工具中使用的方法,同时调用mapbasic.h中属性的声明,而这些方法的程序体则在mapinfow.cpp中实现。
(2)在“project”菜单选择“Add to project”中的”Files”,在文件对话框中分别选择该工程中的mapinfow.h、mapbasic.h、mapinfow.cpp三个文件加入工程中,用于构造mapbasic编程工具的基类。
(3)这时可在ClassView(类视图)中可以看到工程中增加了DMapBasicApplication、DMapinfo、DMBApplications、DMBGloabal、DMBGloabals五个类。这五个类均在mapinfow.h中声明,在mapbasic.cpp中实现。