开发环境 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里面是可以运行的,不知为啥这里不行)。