日期:2014-05-18  浏览次数:21052 次

C# 尝试读取或写入受保护的内存
C# code
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使用的资源,都没用,怎么回事?

------解决方案--------------------
C#调用C++的dll经常会出现这个问题。

------解决方案--------------------
你要写的文件处于打开状态的吧
------解决方案--------------------
看一下 Decrypt(ref fileCount);这个
------解决方案--------------------
这个问题我之前也遇到过,就是你打开了文件要及时关闭,你没有关闭,然后内存就崩溃了。