关于初学者.NET编程中遇到的问题(十二)

在编辑控件界面出错

控件axmicrosoft.office.interop.owc11.axspreadsheet在设计器中引发了一个未处理的异常。

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

system.accessviolationexception:尝试读取或写入受保护的内存。

system.windows.forms.unsafenativemethods.ioleinplaceobject.uideactivate();

system.windows.forms.AxHost.uideactivate();

system.windows.forms.AxHost.onlostfous(eventargs e);

   这个是由于非托管的代码试图访问CLR保护的内存引起的,在垃圾回收以后,垃圾回收器要压缩内存,这时有些内存块将要移动,这些内存是受到保护的,而你的非托管代码恰好要访问这些内存块中的某个,所以产生了你说的问题。
   在你的非托管代码要访问的托管代码处使用fixed关键字试试,有可能会解决这个问题。

原文地址:https://www.cnblogs.com/xuefeng1982/p/1324067.html