.NET下的缓冲区溢出错误的常见原因

时间:2009-02-08 23:32:07

标签: .net overflow buffer

我正在寻找.NET下缓冲区溢出错误的常见原因。

我知道在托管的.NET代码下缓冲区溢出不可能。但是,在.NET应用程序的范围内仍然可以使用此异常。

我想到的事情 -

  • COM对象调用的有效参数
  • PInvoke / Win32调用的有效参数

调试缓冲区溢出错误的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

从评论到问题:

  

那么你们如何在.NET下调试缓冲区溢出错误?

大多数时候,首先没有什么可以调试的。我的意思是,当然存在一个bug并且您需要修复它,但是错误不在您的代码中。它在你正在调用的非托管库中,你无法改变。你唯一能做的就是不以那种方式使用那个库。

这是一个常见原因:非托管库中的错误。

如果您调用一个没有错误的非托管库,也会发生这种情况,但是库希望您明确告诉它缓冲区的大小并给出错误的编号。这是您需要修复的代码问题。但是,它很少发生在.Net中,因为查找缓冲区的大小通常与检查字节数组的.Length属性一样简单。