C# 尝试读取或写入受保护的内存

liujin9012 2012-08-13 02:35:56
FileStream fs = new FileStream(pdfpath,FileMode.Open,FileAccess.Read);
byte[] fileCount = new byte[fs.Length];
fs.Read(fileCount, 0, fileCount.Length);
fs.Close();
Decrypt(ref fileCount);
axFoxitPDFSDK1.OpenBuffer(fileCount, fileCount.Length, "");

axFoxitPDFSDK1是一个第三方组件,用阅读PDF文件的.这样,虽然能阅读,但总是报错,尝试读取或写入受保护的内存,这通常指示其他内存已损坏.,无论我怎样去释放fs使用的资源,都没用,怎么回事?
...全文
183 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bm425 2012-09-11
  • 打赏
  • 举报
回复
谢谢,十分有用
liujin9012 2012-08-14
  • 打赏
  • 举报
回复
Sorry,各位,忙的差点忘这帖子~
 private void Decrypt(ref byte[] context)
{
byte mis = 23;
for (int i = 0; i < context.Length; i++)
{
context[i] = (byte)(context[i] ^ mis);
}
}
这只是个解密方法而已,不用ref问题也还是一样,我试过GC强制垃圾回收,也还是一样
weiweishay 2012-08-13
  • 打赏
  • 举报
回复
这个问题我之前也遇到过,就是你打开了文件要及时关闭,你没有关闭,然后内存就崩溃了。
蝶恋花雨 2012-08-13
  • 打赏
  • 举报
回复
在就使用FileStream 里面pdfpath这个路径之前是不是需要释放一下资源呢还是没关闭
蝶恋花雨 2012-08-13
  • 打赏
  • 举报
回复
看一下 Decrypt(ref fileCount);这个
medex123 2012-08-13
  • 打赏
  • 举报
回复
你要写的文件处于打开状态的吧
gao117348222 2012-08-13
  • 打赏
  • 举报
回复
C#调用C++的dll经常会出现这个问题。
liujin9012 2012-08-13
  • 打赏
  • 举报
回复
强制垃圾回收也不管用System.GC.Collect();
liujin9012 2012-08-13
  • 打赏
  • 举报
回复
自己顶

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧