当我将struct
传递给某个PInvoke
方法时,我会收到错误
未处理的异常:System.AccessViolationException:尝试读取或写入 受保护的记忆这通常表明其他内存已损坏。
当我使用课程时,就可以了。
我想知道背后的原因吗?
答案 0 :(得分:1)
MSDN在this文章中声明:
默认情况下,本机和托管结构的布局不同 内存,所以成功传递结构 托管/非托管边界需要额外的步骤来保存数据 完整性。
您还可以找到在那里使用PInvoke时会派上用场的其他信息。