IEngineEditor接口的0x80004003错误

在定制ArcEngine数据编辑程序时,经常使用IEngineEditor 接口来完成开始、保存和停止编辑。但我遇到了一个问题,测试纠结了两天终于解决,我十分佩服自己。嘻嘻。

错误描述

使用IEngineEditor开启编辑后, 只要一刷新地图就会报如下错误:

System.AccessViolationException

HResult=0x80004003

Message=尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

Source=<无法计算异常源>

StackTrace:

<无法计算异常堆栈跟踪>

问题分析

很显然,0x80004003是指无效指针 ,这个错误try/catch捕捉不到,直接就崩了:

从系统事件中可以看到如下信息,从此并没看到有用的信息。

换个数据测试还是如此问题。

问题解决

将以前测试无误的代码来操作现在的数据,没有问题!经过一番测试,发现问题在于IEngineEditor必须定义为全局变量。在开启编辑后,刷新地图时估计也要访问它!

原文地址:https://www.cnblogs.com/liweis/p/9111758.html