zoukankan      html  css  js  c++  java
  • C#通过COM组件调用IDL的pro程序

    如果在“COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.COM_IDL_connect();”步骤提示“...80040154没有注册类...”,则需要在管理员权限下利用regsvr32命令注册“...ExelisIDL85 esourceridgesexportCOMCOM_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应用示范子系统FloodS1A_IW_GRDH_1SDV_20180907T100312_20180907T100337_023591_0291E9_9B89_Cal_EC_Sub4.dat"; string outfile = @"G:Temp应用示范子系统FloodS1A_IW_GRDH_1SDV_20180907T100312_20180907T100337_023591_0291E9_9B89_Cal_EC_Sub4_Water.dat"; string tempfile = @"G:Temp应用示范子系统FloodS1A_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, "1")) { 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, "1")) { MessageBox.Show("洪水覆盖范围提取完成!"); } else { object objError = oComIDL.GetIDLVariable("error"); string error = objError.ToString(); MessageBox.Show("洪水覆盖范围提取失败!" + error); } oComIDL.DestroyObject(); } } }
  • 相关阅读:
    SSO单点登录机制
    Web应用中Service层获取request对象 | RequestContextHolder的使用
    J2EE中数据字典的使用详解
    Redis高级(事务,持久化,主从复制读写分离,以及安全设置)
    Redis的五种数据类性以及对应的操作命令
    Redis客户端与基本命令
    VMware15安装CentOS8
    用内置的库turtle来画一朵花,python3
    python之经典猜数字
    python,寻找班级里面名字最长的人
  • 原文地址:https://www.cnblogs.com/jkmlscy/p/10622729.html
Copyright © 2011-2022 走看看