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

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

System.AccessViolationException

HResult=0x80004003

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

Source=<无法计算异常源>

StackTrace:

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

问题分析

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

IEngineEditor接口的0x80004003错误

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

IEngineEditor接口的0x80004003错误

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

问题解决

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

相关文章:

  • 2022-12-23
  • 2021-07-11
  • 2021-12-23
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2021-05-01
  • 2021-11-30
  • 2021-12-22
  • 2022-12-23
  • 2021-08-31
相关资源
相似解决方案