阅读:2158回复:6
Vs.net+AO程序运行完毕出现内存问题?大家好! 我用Vs.net作AO开发,程序运行完毕之后会出现两种不同的情况: 1)若在MapControl中加入了图层,会弹出内存错误的对话框; 2)若MapControl中没有加入任何图层,则无任何错误对话框出现. 请问哪位碰到过此类问题,是什么原因造成的?如何解决? 请指教,诚谢! QQ:77521200 |
|
|
1楼#
发布于:2004-08-24 11:20
是不是你在窗体closing的时候Release COM objects and shut down the AoInitilaize object?如下代码。 Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing 'Release COM objects and shut down the AoInitilaize object ESRI.ArcGIS.Utility.COMSupport.AOUninitialize.Shutdown() m_pAoInitialize.Shutdown() End Sub |
|
2楼#
发布于:2004-08-24 12:13
没有,我任何代码都没写.只是设计时在Mapcontrol中加入了图层.
|
|
|
3楼#
发布于:2004-08-24 17:33
我想那也需要对AO初始化吧,我初始化后,就一点问题没有了,代码如下。 #Region " 初始化ArcGIS Enine" Private Function InitializeArcEngine() As Boolean 'Create a new AoInitialize object m_pAoInitialize = New AoInitialize If m_pAoInitialize Is Nothing Then MsgBox("Unable to initialize. This application cannot run!") InitializeArcEngine = False End If 'Determine if the product is available If m_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine) = esriLicenseStatus.esriLicenseAvailable Then If m_pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine) <> esriLicenseStatus.esriLicenseCheckedOut Then MsgBox("The initialization failed. This application cannot run!") InitializeArcEngine = False End If Else MsgBox("The ArcGIS Engine product is unavailable. This application cannot run!") InitializeArcEngine = False End If InitializeArcEngine = True End Function #End Region Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If (InitializeArcEngine() = False) Then Me.Close() Exit Sub End If End sub |
|
4楼#
发布于:2004-08-24 17:44
不做初始化会有问题,是不能正常运行的。
|
|
|
5楼#
发布于:2004-08-24 20:59
你可以在运行时,再加入图层,就不会了!?? 并在窗体的事件Closed中加入: axMap.ClearLayers(); Process process = Process.CurrentProcess(); process.Kill(); // Kill 当前进程 [此贴子已经被作者于2004-8-24 21:00:51编辑过] |
|
|
6楼#
发布于:2004-08-25 09:10
谢谢各位仁兄的指教,解决了! ![]() ![]() |
|
|