【转】IDL 与 外部语言的几种集成方式(一)——connector

 我来答
许643
2013-11-26 · 超过61用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:159万
展开全部
以下几篇博客简要介绍常用的几种调用方式,希望与大家共同学习和进步。 一、外部语言调用IDL: Connector(连接器):即使用IDL事先做好的ActiveX控件和com控件集成到调用语言中。(本实验环境为VS2005 C#,IDL6.4,ENVI4.4)1. IDLDrawWidget draw方式(窗口模式): VS工具箱添加com项IDLDrawWidget control 3.0,在form窗口添加该控件,初始化:1intn;2this .axIDLDrawWidget1.IdlPath=@"E:\ProgramFiles\ITT\IDL64\bin\bin.x86\idl.dll";3n= axIDLDrawWidget1.InitIDL((int)this .Handle);4if(n==0)5{6 MessageBox.Show("IDL控件初始化失败");7}8axIDLDrawWidget1.SetOutputWnd((int)richTextBox1.Handle);9axIDLDrawWidget1.ExecuteStr("restore,'satstretch.sav'");//satstretch.sav必须置放于运行目录下10axIDLDrawWidget1.ExecuteStr("satstretch");11 如果pro没有编译成sav,可将pro置放于运行目录下,直接运行axIDLDrawWidget1.ExecuteStr("satstretch"); nodraw方式:VS资源管理器添加引用com:IDLDRAW3Lib。初始化:1intn;2IDLDrawWidgetidl=new IDLDrawWidgetClass();3idl.IdlPath=@"E:\ProgramFiles\ITT\IDL64\bin\bin.x86\idl.dll";4n= idl.InitIDL((int)this .Handle);5if(n==0)6{7 MessageBox.Show("IDL控件初始化失败");8}9idl.SetOutputWnd(0);//注意:如果IDL中要调用envi函数,加上这句会防止出错10idl.ExecuteStr("restore,'satstretch.sav'");11idl.ExecuteStr("satstretch"); 2. COM_IDL_Connect(nodraw方式) VS资源管理器添加引用com:COM_IDL_ConnectLib,初始化:1COM_IDL_connectcom=new COM_IDL_connectClass();2try3{4 com.CreateObject(0, null, null);5 com.ExecuteString("restore,'satstretch'");6 com.ExecuteString("satstretch");7}8catch(Exceptionex)9{10//MessageBox.Show(ex+com.GetLastError());11} 1. IDLDrawWidget在IDL6.4以后的版本已经被ITT放弃,不再更新,公司以后会朝着COM方向发展。使用Export Bridge Assistant可以将IDL 程序包装成com组件在其他支持com的语言中使用。这个是下篇博客介绍的内容。 2.参数传递问题,参数传入很好解决。参数传出也提供了相应的接口。
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式