ArcEngine开发 退出系统报错
主要原因是沒有釋放AO資源
public class Form1 : System.Windows.Forms.Form
{
??? private ESRI.ArcGIS.esriSystem.IAoInitialize m_AoInitialize = new ESRI.ArcGIS.esriSystem.AoInitializeClass();
?
??? private void Form1_Load(object sender, System.EventArgs e)
??? {
??????? // 創建新的AoInitialize對象
??????? if ( m_AoInitialize == null)
??????? {
??????????? System.Windows.Forms.MessageBox.Show("初始化失敗,程序不能運行!");
??????????? this.Close();
??????? }
??????? // 判斷產品是否有效
??????? ESRI.ArcGIS.esriSystem.esriLicenseStatus licenseStatus = (esriLicenseStatus)
??????????? m_AoInitialize.IsProductCodeAvailable(
??????????? ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeEngine);
??????? if (licenseStatus == ESRI.ArcGIS.esriSystem.esriLicenseStatus.esriLicenseAvailable )
??????? {
??????????? licenseStatus = (ESRI.ArcGIS.esriSystem.esriLicenseStatus)
??????????????? m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeEngine);
??????????? if (licenseStatus != ESRI.ArcGIS.esriSystem.esriLicenseStatus.esriLicenseCheckedOut )
??????????? {
?????????????? System.Windows.Forms.MessageBox.Show("初始化失敗,應用程序不能運行!");
?????????????? this.Close();
??????????? }
??????? }
??????? else
??????? {
??????????? System.Windows.Forms.MessageBox.Show("ArcGIS Engine產品無效,此程序不能運行!");
??????????? this.Close();
??????? }
??? }
???
??? private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
??? {
??????? // 釋放COM對象并關閉AoInitialize對象
??????? ESRI.ArcGIS.Utility.COMSupport.AOUninitialize.Shutdown();
??????? m_AoInitialize.Shutdown();
?}
}
本文轉自Lei Zhang的博客博客園博客,原文鏈接:http://www.cnblogs.com/threestone/archive/2010/07/20/1781396.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的ArcEngine开发 退出系统报错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 静态库和动态库的基本介绍和使用
- 下一篇: linux学习随笔第一天