J'ai le code suivant dans C++ que je dois être en mesure d'appeler à partir de C#:maréchal safearray de struct dans struct
struct Inner
{
double data1;
double data2;
};
struct Outer
{
double data3;
SAFEARRAY innerData;
};
int WINAPI ProcessData (Outer& outer)
{
...
}
J'essayé ce qui suit, mais il ne fonctionne pas Qu'est-ce que je fais mal?
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct Inner
{
public double data1;
public double data2;
}
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct Outer
{
public double data3;
[MarshalAsAttribute(UnmanagedType.Safearray,ArraySubType = UnmanagedType.Struct)]
public Inner[] innerData;
}
Il est impossible de deviner le type d'élément à partir de la déclaration. Utilisez object [] si le tableau stocke des variantes. –