博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【301】IDL与C#混合编程
阅读量:6233 次
发布时间:2019-06-22

本文共 1485 字,大约阅读时间需要 4 分钟。

目录:


  C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言。C#与Java有很多的相似之处,包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。它又借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。

  IDL则一直是应用程序开发和科学家进行可视化与分析的首选语言。因为它功能强大,简单易学,很少的几行代码就能实现其他语言很难实现的功能,所以它是进行科学数据分析、可视化表达和跨平台应用开发的高效软件和理想工具。作为第四代语法简单、面向矩阵运算的计算机语言,IDL拥有丰富的分析工具包。同时支持遥感图像处理软件ENVI的二次开发,使得利用IDL进行ENVI二次开发实现数据处理分析和可视化程序变得非常容易。

一、COM_IDL_CONNECT
 
1. 添加组件

  如下图,首先在“引用”出点击右键,如下图所示点击“添加引用”

  

  可以通过 COM 标签找到“COM_IDL_connectLib”直接添加

    

  也可以直接浏览文件,如下面所示的地址,点击“COM_idl_connect.dll”文件

  

2. 组件初始化

  代码如下所示:

COM_IDL_connectLib.COM_IDL_connectClass oCom = new COM_IDL_connectLib.COM_IDL_connectClass();oCom.CreateObject(0, 0, 0);
3. 功能调用

  COM_IDL_CONNECT 组件具备 IDL 命令行的执行功能,即方法 ExecuteString (string strCommand),其中 strCommand 是命令字符串。

  如果是 pro 源码文件,需要先编译再调用。

oCom.ExecuteString(String.Format(".compile '{0}data_query.pro'", root_dir));oCom.ExecuteString("data_query, input, output, year");

  root_dir 为路径字符串,第2行中 input、output、year 为相应的参数,调用与 IDL 中一样。

4. 数据传递

  COM_IDL_CONNECT 组件具备 SetIDLVariable 和 GetIDLVariable 这样的方法进行数组数据的共享及程序的调用。

//设置变量,可以传递到执行代码中oCom.SetIDLVariable("path_input", cmbox_input.Text);oCom.SetIDLVariable("path_output", cmbox_output.Text);oCom.SetIDLVariable("year", year);//设置后的变量,可以直接像 IDL 中的变量一样使用oCom.ExecuteString(String.Format(".compile '{0}data_query.pro'", root_dir));oCom.ExecuteString("data_query, input, output, year");//获取 IDL 文件中的系统变量file_path = oCom.GetIDLVariable("!filepath").ToString();
二、IDLDrawWidget组件
 

参考:

参考:

转载地址:http://rwhna.baihongyu.com/

你可能感兴趣的文章
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>