zoukankan      html  css  js  c++  java
  • 【301】IDL与C#混合编程

    目录:


      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组件
     

    参考:idl与c#的数据传递方法研究com_idl_connect

    参考:IDL与C#混合编程技术

  • 相关阅读:
    AfxMessageBox详细使用说明
    动态规划: 求一个一维整数数组的最大子序列和
    常见HTTP状态码
    PHP 基础系列(三) 【转】PHP 函数实现原理及性能分析
    empty() isset() isnull() 比较
    isset() 与 array_key_exists() 比较
    PHP基础系列(二) PHP数组相关的函数分类整理
    PHP基础系列(一) PHP字符串相关的函数分类整理
    linux df 命令
    grep 同时满足多个关键字和满足任意关键字
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/8453748.html
Copyright © 2011-2022 走看看