如果在“COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.COM_IDL_connect();”步骤提示“...80040154没有注册类...”,则需要在管理员权限下利用regsvr32命令注册“...\Exelis\IDL85\resource\bridges\export\COM\COM_idl_connect.dll”组件,如下图:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace FloodMonitor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Button1_Click(object sender, MouseEventArgs e)
{
//新建COM_IDL_CONNECT对象
COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.COM_IDL_connect();
//对象初始化————必不可少
oComIDL.CreateObject(0, 0, 0); string infile = @"G:\Temp\应用示范子系统\Flood\S1A_IW_GRDH_1SDV_20180907T100312_20180907T100337_023591_0291E9_9B89_Cal_EC_Sub4.dat";
string outfile = @"G:\Temp\应用示范子系统\Flood\S1A_IW_GRDH_1SDV_20180907T100312_20180907T100337_023591_0291E9_9B89_Cal_EC_Sub4_Water.dat";
string tempfile = @"G:\Temp\应用示范子系统\Flood\S1A_IW_GRDH_1SDV_20180907T100312_20180907T100337_023591_0291E9_9B89_Cal_EC_Sub4_PCA2.dat";
oComIDL.ExecuteString(".compile E:\\IDLWORK_8.5\\Application_Demonstration\\source\\FloodMonitor.pro");
//执行主成分分析
oComIDL.ExecuteString("ret = FloodMonitor('" + infile + "','" + tempfile + "', error=error)");
object objRet1 = oComIDL.GetIDLVariable("ret");
string ret1 = objRet1.ToString();
if (String.Equals(ret1, ""))
{
MessageBox.Show("主成分分析完成!");
}
else
{
object objError = oComIDL.GetIDLVariable("error");
string error = objError.ToString();
MessageBox.Show("主成分分析失败!" + error);
} //设置阈值
string threshold = "4.95"; //阈值分割
oComIDL.ExecuteString("ret = FloodMonitor_GetFlood('" + tempfile + "'," + threshold + ",'" + outfile + "')");
object objRet2 = oComIDL.GetIDLVariable("ret");
string ret2 = objRet2.ToString();
if (String.Equals(ret2, ""))
{
MessageBox.Show("洪水覆盖范围提取完成!");
}
else
{
object objError = oComIDL.GetIDLVariable("error");
string error = objError.ToString();
MessageBox.Show("洪水覆盖范围提取失败!" + error);
} oComIDL.DestroyObject(); } }
}

C#通过COM组件调用IDL的pro程序的更多相关文章

  1. C++调用IDL程序的做法(一)

    作者:朱金灿 来源:http://blog.csdn.net/clever101 IDL是一种数据分析和图像化应用程序及编程语言,先由美国ITT公司所有.最初在七十年代后期用于帮助科学家分析火星探险卫 ...

  2. Java调用IDL方法总结

    Java调用IDL方法总结 Java调用IDL程序,需要先在java中加载IDL的java包(javaidlb.jar),该包不需要下载,在IDL的安装目录中可以直接找到(C:\Program Fil ...

  3. C++调用IDL程序的做法(三)

     作者:朱金灿 来源:http://blog.csdn.net/clever101 在C++调用IDL程序的做法(二)一文中介绍了如何动态创建IDLDrawWidgetControl的做法.假如我 ...

  4. 关于COM组件调用

    转载自:http://www.cppblog.com/ice197983/articles/4178.html 一.调用步骤: 使用ATL编写的COM组件调用方法有两种:1.导入myCom.dll文件 ...

  5. C++调用IDL程序的做法(二)

    作者:朱金灿 来源:http://blog.csdn.net/clever101 上次提到使用IDLDrawWidget Control 3.0来调用IDL程序,但是我们还有一些问题没有解决,比如C+ ...

  6. 此操作失败的原因是对 IID 为“{000208DA-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface

    有些电脑报错,有些电脑正常. 环境:VS2010 WinForm程序, Office2007 C#操作Excel时报错.错误: 无法将类型为“System.__ComObject”的 COM 对象强制 ...

  7. 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

    无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...

  8. 最原始的COM组件调用过程(不使用注册表信息)

    最原始的COM组件调用过程(不使用注册表信息) 最近因为项目的关系开始研究COM组件了,以前都认为COM过时了,所以也没怎么接触. 现在好好补补课了. 一般调用COM都是通过注册表找到它的位置, 然后 ...

  9. 为operamasks增加HTML扩展方式的组件调用

    #为operamasks增加HTML扩展方式的组件调用 ##背景 之前的[博文](http://www.cnblogs.com/p2227/p/3540858.html)中有提及到,发现easyui中 ...

随机推荐

  1. git 提交本地工程

    1> 进入github 建立repository 2> 得到git master 地址 3> 得到进入本地工程目录 右键->git bash here 4>执行 以下命令 ...

  2. CMDB-实例

    目录规划 bin ------> 启动文件 lib -------> 常见的库文件 src ------> 采集的核心代码 conf ----> 配置目录 log ------ ...

  3. jsp(待改)

    ##JSP 1.指令 作用:用于配置JSP页面,导入资源文件 *书写格式 <%@ 指令名称 属性1=值1,属性2=值2  ...%> *分类: *page :配置JSP页面的 #属性: c ...

  4. display inline or block

    一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置   margi ...

  5. 关于pycharm中导入自己写的模块没有智能提示的解决办法

    在pycharm界面中右击py文件所在的文件夹,选择Make Directory as文件,选择其中一个即可

  6. MongoDB连接

    1. import pymongo client = pymongo.MongoClient(host='localhost',port=27017) 2. client=MongoClient('m ...

  7. [工作积累] UE4 TAA ReProjection的精度处理

    先贴一个UE4 TAA的slidehttps://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf ...

  8. Java_03选择结构

    1.if 选择结构 格式: if(判断条件){ // 语句块 }else if(判断条件){ // 语句块 2 }else{ // 语句块 3 } 当 if 关键字后的一对大括号里只有一个语句时,可以 ...

  9. day-13装饰器

    函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有函数的嵌套定义:1)函数fn2想直接使用fn1函数的局部变量,可以将fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变量2 ...

  10. JS ajax请求参数格式( formData 、serialize)

    $("#importBtn").click(function(){ if($("#conId").val() == ""){ alert(& ...