首页 文章

为什么在使用struct而不是class时会出现AccessViolationException

提问于
浏览
0

当我将 struct 传递给某个 PInvoke 方法时,我会收到错误

未处理的异常:System.AccessViolationException:尝试读取或写入受保护的内存 . 这通常表明其他内存已损坏 .

当我使用课程时,就可以了 .

我想知道背后的原因吗?

1 回答

  • 1

    MSDN声明this文章:

    默认情况下,本机和托管结构在内存中的布局不同,因此跨托管/非托管边界成功传递结构需要额外的步骤来保持数据完整性 .

    您还可以找到在那里使用PInvoke时派上用场的其他信息 .

相关问题