ArcEngine開發 嘗試讀取或寫入受保護的內存。這通常指示其他內存已損壞。


 

if(pFeature!=null)

{

  IPoint pnt = pFeature.Shape as IPoint;

  pntArray.Add(pnt);

}

調試是pntArray.Add(pnt)顯示 嘗試讀取或寫入受保護的內存。這通常指示其他內存已損壞。,網上的資料說是COM對象在循環中沒有來得及釋放造成的。

因為是在循環中,以為是pFeature沒有釋放造成的,所以就釋放了一下,結果還是這個問題。

后來仔細找,發現pFeature是Polygon類型的,當初想當然的以為可以將Polygon轉化為Point類型。后來斷點時候,發現pnt一只為null。

所以,上述錯誤的原因就是把一個空接口指針添加到PointArray集合中造成的。

通過一定的方法,將Polygon的中心坐標賦值到pnt中,即可解決上述問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM