• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#通过COM组件调用IDL的pro程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

如果在“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, "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(); } } }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#/VB.NET与西门子PLC进行ModbusTcp通信发布时间:2022-07-18
下一篇:
c#实现天气预报查询发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap