- 专家问诊,提供专业建议
- 急速响应,体验省心
- 根据需求灵活定制解决方案
IDL二次开发内容介绍
标签:IDL二次开发 2017-7-24 作者:唐明霞
IDL一直是应用程序开发和科学家进行可视化与分析的首选语言。因为它功能强大,简单易学,很少的几行代码就能实现其他语言很难实现的功能,所以它是进行科学数据分析、可视化表达和跨平台应用开发的高效软件和理想工具。作为第四代语法简单、面向矩阵运算的计算机语言,IDL拥有丰富的分析工具包。同时支持遥感图像处理软件ENVI的二次开发,使得利用IDL进行ENVI二次开发实现数据处理分析和可视化程序变得非常容易。
C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言。C#与Java有很多的相似之处,包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。它又借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。
1 C#调用IDL方式
C#可以通过COM组件的方式直接调用IDL进行开发。IDL提供了IDLDrawWidget和COM_IDL_CONNECT两个组件,其中IDLDrawWidget组件是带UI的可视组件,COM_IDL_CONNECT是不带UI的功能组件,在实际使用的时候可以根据应用需求选取。
以IDLDrawWidget组件为例,该组件包含了多种功能方法,如下图,这些方法使得C#在调用的时候方便进行初始化、功能调用、参数传递和事件响应传递。
2 关键技术
以在Visual Studio 2008 C#下调用IDLDrawWidget组件为例,分析下调用该组件的关键技术。
(一) 组件初始化
与其他ActiveX组件一样,在VisualStudio的工具箱组件上单击鼠标右键,弹出菜单中选择[选择项],见下图。
弹出的选择工具箱项界面中点击TAB界面[COM组件],列表中找到“IDLDrawWidget Control3.0”并勾选(如下图)。若列表中不存在该组件,点击[浏览]查找IDL安装目录下的子目录“bin\bin.x86”中的“idldrawx3.ocx”文件。
组件初始化前需要设置组件的IDL安装目录,本机的IDL安装目录可以通过查找注册表选项的方式获取,获取IDL8.0安装路径的C#示例代码如下:
(二) 功能调用
IDLDrawWidget组件支持调用IDL的源码文件和sav文件。其中ExecuteStr方法相当于IDL的命令行,而IDL可以使用点命令(见下图)在命令行下进行源码的编译和功能调用。故,通过ExecuteStr方法可以轻松地调用IDL功能。
使用点命令在命令行下进行源码编译和运行的示例代码:
(三) 数据传递
IDLDrawWidget组件通过SetNamedArray、SetNameData等方法进行数据传递,C#与IDL之间支持基本的数据类型变量和数组传递(表3)
(四) 事件传递
IDLDrawWidget组件可以在C#或IDL下响应键盘和鼠标事件。即通过C#主程序可以触发组件的事件并由IDL事件响应程序进行响应。组件的事件响应处理方式与组件的RegisterForEvents值有关,各个值的含义见表4。
组件界面中添加鼠标滚轮事件的示例代码如下:
IDL中的响应该事件的代码如下:
类似的方式可以添加鼠标拉框放大和缩小等功能,即通过C#与IDLDrawWidget组件构建了一个完整的图像显示与基本处理程序,通过鼠标可以对显示图像进行放大、缩小和平移操作,并通过IDL实现了基本的图像处理、投影变换和仿真模拟功能。
3 结束语
通过IDLDrawWidget等组件提供的方法,C#可以方便灵活地集成IDL程序,轻松搭建可视化分析与处理系统的框架,快速集成IDL的可视化分析与处理功能。这样充分发挥各语言的优势,构建复杂的可视化应用与分析的系统将会变得非常方便。
以上就是小编介绍的IDL二次开发及相关内容,想要了解更多讯息,请关注猪八戒网服务购行业资讯。
软件开发暂无最新文章查看全部推荐文章>
推荐人才
免责声明:
网站文章均由网站用户自行通过本网站系统平台投稿编辑整理发布,仅供学习与参考, 不代表本网站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系我们,我们将及时删除。