调用自定义GP工具问题
我的GP工具不用输入参数,是那种直接调用跑一下就行的,但是出现“对 COM 组件的调用返回了错误 HRESULT E_FAIL”。
代码贴下:
Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;
gp.AddToolbox(toolPath);
IVariantArray parameters = new VarArrayClass();
gp.Execute("Gen_Join_Tnb", parameters, null);
for (int i = 0; i < gp.MessageCount; i++)
{
string Mess = gp.GetMessage(i);
}
工具执行消息数量是0,就是没有执行。
请各位高手指点!
------解决方案--------------------
ArcGIS Engine中调用GP模型示例代码,如下:
//1-定义GeoProcessor对象
Geoprocessor gp = new Geoprocessor();
object sev = null;
//2-设置参数
gp.OverwriteOutput = true;
//3-设置工具箱所在的路径
gp.AddToolbox(@"F:\lib_test\AirportsAndGolf.tbx");
//4-设置输入参数
IVariantArray parameters = new VarArrayClass();
parameters.Add(@"F:\lib_test\地下水重金属数据.xls\Sheet1$");
parameters.Add("`YEAR` = 2009");
parameters.Add("W20111");
parameters.Add(@"F:\lib_test\temp.gdb\tempwww");
//5-执行工具
gp.Execute("ModelAnalysis", parameters, null);