
这样的错误怎么办
首先学会输出错误:
在执行工具的时候,本来只需一句
geoprocessor.Execute(erase, null); //这里以执行擦除为例
但为了看到具体的错误,写成下面这样。
try
{
geoprocessor.Execute(erase, null);
}
catch (System.Runtime.InteropServices.COMException e)
{
string message = "";
for (int i = 0; i < geoprocessor.MessageCount; i++)
{
message += geoprocessor.GetMessage(i) + "\r\n";
}
MessageBox.Show(message + e.ToString());
}
这样就会输出这样的界面,显示了具体是因为什么出现了“对COM组件的调用返回了错误HRESULT E_FAIL”的错误。

可以看到,我这里是因为工具没有权限
修改工具权限
在网上查了半天,说是需要将权限修改成advanced,也就是更高级一点。有两种方法,一是按照图1所示,将那三行代码写在初始化之前,二是如图2右键axLicenseControl勾选Advanced选项。

图1

图2
呵呵,谁知道我前前后后试了多少回都没有成功。放弃后耍了几天,一回来,随便操作了一番,竟然成功了!!
正确做法是:勾选ArcEngine Engine,把右边全部勾了!

可能默认就是这样??但是之前就是死都不成功。不管了,反正它已经没有问题了,啦啦啦啦~~