ArcGIS engine的异常来自 HRESULT:0x80040258

arcengine出现这个问题一般是license授权的问题。

对于license的授权有两种方式:

AE开发中的License有两种方法进行设置,一种是通过LicenseControl控件,另一种是通过IAoInitialize接口设置。整个应用程序中只能有一种方式存在,如果进行了两种License设置,就可能产生错误。

对于IAoInitialize接口设置设置,代码如下:

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

IAoInitialize接口要引用ESRI.ArcGIS.ADF.Local程序集,在程序中引用using ESRI.ArcGIS.esriSystem;

posted @ 2018-11-19 23:04  jamesinsun  阅读(1231)  评论(0)    收藏  举报