结构体中的Marshal safearray [英] Marshal safearray of struct inside struct
本文介绍了结构体中的Marshal safearray的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在C ++中有以下代码,我需要能够从C#调用:
I have the following code in C++ which I need to be able to call from C#:
struct Inner
{
double data1;
double data2;
};
struct Outer
{
double data3;
SAFEARRAY innerData;
};
int WINAPI ProcessData (Outer& outer )
{
...
}
我试过下面但是没有工作我做错了什么?
I tried the following but it did not work What am I doing wrong?
[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;
}
推荐答案
/ p>
Did you try this?
[StructLayoutAttribute (LayoutKind.Sequential)]
public struct Outer
{
public double data3;
[MarshalAsAttribute (UnmanagedType.SafeArray, SafeArrayUserDefinedSubType=typeof(Inner))]
public Inner [] innerData;
}
这篇关于结构体中的Marshal safearray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文