解决AE中GP工具错误 对 COM 组件的调用返回了错误 HRESULT E_FAIL

问题解决 专栏收录该内容
2 篇文章 0 订阅

开发环境 vs2010(C#)+arcengine 10

在使用GP工具调用arctoolbox完成格式转换时,总是报错   对 COM 组件的调用返回了错误 HRESULT E_FAIL然后晚上找了一些解决办法:

1. 配置MSDTC

参见  http://blog.sina.com.cn/s/blog_58b4162f01018uex.html   但还是没解决我的问题。我的MSDTC中没有  安全配置 这一项然后找了怎么显示安全配置的方法(注:local DTC properties(本地DTC属性)在我的电脑的子项里)

可是我的电脑却没有 安全 选项卡

2. 许可证问题

参见 http://blog.csdn.net/u011116642/article/details/17073471

大致办法是在program.cs中加入

            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            #region 初始化许可
              IAoInitialize m_AoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);
            if (licenseStatus == esriLicenseStatus.esriLicenseNotInitialized)
            {
                MessageBox.Show("没有esriLicenseProductCodeArcInfo许可!");
                Application.Exit();
            }
            #endregion

上面代码放在加载form前。


上面的方法都没有解决问题,为了找到具体问题  加入了问题反馈

加入代码:

object sev = null;
            try
            {
                // Execute the tool.
                gp.Execute(ToCAD, null);
                Console.WriteLine(gp.GetMessages(ref sev));
            }
            catch (Exception ex)
            {
                // Print geoprocessing execution error messages.
                MessageBox.Show(gp.GetMessages(ref sev));
            }

最后显示的是读取数据的时候失败,换了一个文件后运行成功(其实在arcmap里面是可以运行的,不知为啥这里不行)。

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值