【301】IDL与C#混合编程
目录:
C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言。C#与Java有很多的相似之处,包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。它又借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。
IDL则一直是应用程序开发和科学家进行可视化与分析的首选语言。因为它功能强大,简单易学,很少的几行代码就能实现其他语言很难实现的功能,所以它是进行科学数据分析、可视化表达和跨平台应用开发的高效软件和理想工具。作为第四代语法简单、面向矩阵运算的计算机语言,IDL拥有丰富的分析工具包。同时支持遥感图像处理软件ENVI的二次开发,使得利用IDL进行ENVI二次开发实现数据处理分析和可视化程序变得非常容易。
如下图,首先在“引用”出点击右键,如下图所示点击“添加引用”
可以通过 COM 标签找到“COM_IDL_connectLib”直接添加
也可以直接浏览文件,如下面所示的地址,点击“COM_idl_connect.dll”文件
代码如下所示:
1 2 | COM_IDL_connectLib.COM_IDL_connectClass oCom = new COM_IDL_connectLib.COM_IDL_connectClass(); oCom.CreateObject(0, 0, 0); |
COM_IDL_CONNECT 组件具备 IDL 命令行的执行功能,即方法 ExecuteString (string strCommand),其中 strCommand 是命令字符串。
如果是 pro 源码文件,需要先编译再调用。
1 2 | 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 中一样。
COM_IDL_CONNECT 组件具备 SetIDLVariable 和 GetIDLVariable 这样的方法进行数组数据的共享及程序的调用。
1 2 3 4 5 6 7 8 9 10 11 | //设置变量,可以传递到执行代码中 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(); |
参考:idl与c#的数据传递方法研究com_idl_connect
参考:IDL与C#混合编程技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2014-02-19 【137】Photoshop相关功能