本文列举了ArcEngine开发过程中常见的几种报错,分析了报错原因并阐述了解决办法。
【报错1】:
在窗体中拖入控件,运行时报错“ArcGIS version not specified. You must callRuntimeManager.Bind before creating any ArcGIS components.”
解决方法:在程序入口main函数中添加绑定软件许可版本的代码“ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);”。
【报错2】:
报错“HRESULT:0x80040258”
解决方法:
IWorkspacepWorkspace =pWorkspaceFactory.OpenFromFile(pShpPath,0);
此类报错不是代码的问题,而是带进去的参数不对,比如pShpPath 只是路径名字,比如C:\\AAA就不会报错,如果使用全路径名字C:\\AAA\\BBB.shp所以就出错了。
【报错3】:
报错“HRESULT:0x80040228”
解决方法:往窗体添加一个license控件。
【报错4】:
往窗体中拖入ArcGIS控件报错
解决方法:
打开ArcGIS License Server Administrator10.1,启动license Service即可。
【报错5】:
报错“HRESULT:0x80040351”
解决方法:pFeatureWorkspace.OpenFeatureClass()括号内的参数应该是“samplepoint.shp”而非绝对路径,修改绝对路径为文件名即可。
【报错6】:
报错”异常来自 HRESULT:0x80040207”
解决办法:
检查发现是QueryFilter.WhereClause语句在查询shapefile格式的图层出现了问题,试验在查询gdb格式的图层不会报错。打开ArcGIS比较了两种格式的属性查询存在以下的区别:
1.shapefile的字段名用双引号如:"fieldName"而GDB的采用[fieldName]格式;
2.shapefile的模糊查询用like '%A%' 而GDB用like '*A*' ;
3.shapefile的非字符字段不支持模糊查询而GDB格式的支持;
【报错7】:
使用语句“ESRI.ArcGIS.Geometry.IPointpoint =
new ESRI.ArcGIS.Geometry.PointClass();”报错,报错如下图:
解决方法:在解决方案引用中选择ESRI.ArcGIS.Geometry,右键菜单查看属性,把“嵌入互操作类型”由True改成False即可。
本文详细分析了ArcEngine开发中常见的错误,包括‘ArcGIS version not specified’、‘HRESULT:0x80040258’、‘HRESULT:0x80040228’等,并提供了相应的解决策略,如绑定软件许可版本、修正参数路径、添加license控件等。
4023

被折叠的 条评论
为什么被折叠?



