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我没有测试过)

  • 相关阅读:
    ALV实时刷新功能的实现
    sap中批量导入Excel表格中的数据
    从se11新建的表维护中,给维护的数据做限制处理,例如,只允许输入vp开头的数据
    abap之ranges使用
    Abap中LOOP循环时使用AT FIRST. 传数过程中出现一串 ******** ------解决办法
    Django项目-创建第一个页面
    Python3创建django项目
    Python3安装Pyyaml
    Appium命令行环境搭建及参数使用
    c# ABP 中开启新的事务
  • 原文地址:https://www.cnblogs.com/HomeGIS/p/1335439.html
Copyright © 2011-2022 走看看