代码之家  ›  专栏  ›  技术社区  ›  user62572

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

  •  1
  • user62572  · 技术社区  · 15 年前

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

    我知道缓冲区溢出是 不可能的

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

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   Joel Coehoorn    15 年前

    从评论到问题:

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

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

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