免责声明:编组概念接近零。
我有一个结构 B,其中包含一个字符串 + 一个结构 C 数组。我需要将它跨过巨大的互操作鸿沟发送给 COM - C++ 使用者。
我需要哪些正确的属性集来装饰我的结构定义?
[ComVisible (true)]
[StructLayout(LayoutKind.Sequential)]
public struct A
{
public string strA
public B b;
}
[ComVisible (true)]
[StructLayout(LayoutKind.Sequential)]
public struct B
{
public int Count;
[MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.Struct, SizeParamIndex=0)]
public C [] c;
}
[ComVisible (true)]
[StructLayout(LayoutKind.Sequential)]
public struct C
{
public string strVar;
}
编辑:@Andrew 基本上这是我朋友的问题。他让这个东西在 .Net 中工作 - 他做了一些自动创建 .tlb/.tlh 的东西,然后他可以在 C++ 领域中使用。问题是他无法修复数组大小。