内存怎么清理尝试读取或写入受保护的内存?尝试读取或写入?-创新互联

尝试读取或写入受保护的内存?尝试读取或写入?这种错误很常见,尤其是在图像开发、COM组件操作中,不要指望本文能给你一个明确的答案,只能为你提供解决问题的思路:内存怎么清理 尝试读取或写入受保
护的内存?尝试读取或写入?

解决方法只有一种:视觉还是排除,先看排除的优先级:

上犹ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

1。如果您使用nativecode资源,如com、ActiveX;

没有强制解释,底层com组件将根据进程调用组件的次数控制对象的增加和释放(对象释放将延迟,这是com本身的问题)。

一般调用强制垃圾回收的方法或者Ao自己的回收对象,效果不明显。

这类对象不释放,通常在应用程序中发生重复调用频率很高,调用间隔时间小于对象恢复速度,会报告此错误。

通常,导致这种情况的是编写自己程序的不合理组织。

释放程序中的com资源并调用Marshal.releasecom对象()方法释放不再使用的对象

并去捕捉可能发生异常的地方,留下一个日志来传输异常。

2.表示测试的可执行文件与windows的数据执行保护功能兼容。

CallDLL程序运行时,将出现“trytoreadorwriteprotectedmemory”。这通常表示其他内存已损坏。“

有关详细信息,请参阅/nxcompat(与数据执行保护兼容)。

编译器增加了DEP的安全检查,取消编译的EXE文件中的nxcompat位可以解决问题editbin.exe/NXCOMPAT:没有myexe

3.排除环境因素:例如,两者之间有很大的差距。净外汇2.0和。净外汇2.0SP2。当然,其他环境因素也应该考虑在内。

确保消除因开发和部署环境的差异而导致的问题。

4.如果此问题突然出现,最好回滚到上一个操作并重新执行该操作,例如删除控件并再次添加;

取消com注册并重新注册;如果已安装其他插件,请删除它们并重试。

5.程序本身的问题。例如:数据库访问的大并发量、死锁。或者频繁的读写操作,造成的垃圾收集机制是C#,即变量收集的速度快于使用的速度,因此需要重新设计算法。

请问调用DLL,报错

一般来说,如果DLL文件本身没有损坏,则写入或读取是非法的,例如读取超出界限的共享数组。

如果DLL损坏,请用DLL替换。例如,一些游戏错误需要重新加载C运行时等等。过了很长一段时间,这东西就会损坏。


分享题目:内存怎么清理尝试读取或写入受保护的内存?尝试读取或写入?-创新互联
标题链接:http://scyanting.com/article/ccppss.html