首页 > 解决方案 > 结构字段编组在 Linux 上失败

问题描述

我正在使用以下结构通过 PInvoke 进行数据封送处理

[StructLayout(LayoutKind.Sequential)]
struct Data
{
  int id;
  IntPtr state;
  object obj;
}

在 Windows 上一切正常,但在 Linux 上出现错误:

无法封送“数据”类型的字段“obj”:托管/非托管类型组合无效(不支持与 COM 接口指针之间的封送处理)。

为什么?是否可以禁用特定字段的编组?

标签: .net-corepinvokemarshalling

解决方案


object obj;属性无效

你可以试试IntPtr obj;

的实际类型是obj什么?


推荐阅读