Haftungsausschluss: Nahezu Null mit Rangierkonzepten
Ich habe eine Struktur B, die eine Zeichenkette und ein Array von Strukturen C enthält. Ich muss dies über die riesige Interop-Kluft an einen COM-C++-Verbraucher senden.
Was sind die richtigen Attribute, die ich brauche, um meine Strukturdefinition zu schmücken?
[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;
}
bearbeiten: @Andrew Im Grunde ist das das Problem meines Freundes. Er hat diese Sache, die in .Net funktioniert - Er macht einige Automagic, um die .tlb/.tlh erstellt zu haben, die er dann in der C++-Welt verwenden kann. Das Problem ist, er kann nicht reparieren die Größe des Arrays.