zoukankan      html  css  js  c++  java
  • IDL 与 外部语言的几种集成方式(一)——connector

          IDL与外部语言的集成内容包括IDL内调用外部语言和外部语言调用IDL。以下几篇博客简要介绍常用的几种调用方式,希望与大家共同学习和进步。

          一、外部语言调用IDL:

                Connector(连接器):即使用IDL事先做好的ActiveX控件和com控件集成到调用语言中。(本实验环境为VS2005 C#,IDL6.4,ENVI4.4)

               1. IDLDrawWidget

                draw方式(窗口模式): VS工具箱添加com项IDLDrawWidget control 3.0,在form窗口添加该控件,初始化:

    Code

               如果pro没有编译成sav,可将pro置放于运行目录下,直接运行axIDLDrawWidget1.ExecuteStr("satstretch");

               nodraw方式:VS资源管理器添加引用com:IDLDRAW3Lib。初始化:

    Code

               2. COM_IDL_Connect(nodraw方式)

                VS资源管理器添加引用com:COM_IDL_ConnectLib,初始化:

    Code

               此调用过程VS会报错,但IDL程序会正常运行,一直不知道什么地方出了问题,我catch了错误没有理会它。有知道的看过后烦请指教一下。

               说明:

               1. IDLDrawWidget在IDL6.4以后的版本已经被ITT放弃,不再更新,公司以后会朝着COM方向发展。使用Export Bridge Assistant可以将IDL 程序包装成com组件在其他支持com的语言中使用。这个是下篇博客介绍的内容。

              2.参数传递问题,参数传入很好解决。参数传出也提供了相应的接口。IDLDrawWidget提供getNameData方法,具体使用如下:

    Code

              COM_IDL_Connect提供的接口是GetIDLVariable,调用方法和getNameData一样。

             3. 如果VS运行于64bit的机器,生成目标平台最好改为x86,否则会出错。(VS for 64x我没有测试过)

  • 相关阅读:
    recurse_array_change_key_case()递规返回字符串键名全为小写或大写的数组
    php循环创建目录
    ajaxFileUpload增加附加参数
    dedecms5.7 联动类型无法显示
    一些比较隐秘的OJ的网址
    Emacs 配置
    qwq
    233
    [八省联考2018]林克卡特树lct
    [APIO2014]序列分割
  • 原文地址:https://www.cnblogs.com/HomeGIS/p/1335439.html
Copyright © 2011-2022 走看看