c#调用C++DLL类型转换,结构体内含结构体数组,怎么声明?

C++typedefstructabc{bytea[22];dddstruct[22];这是结构体里的另外一个结构体}C#转译publicstructabc{[Marsh... C++
typedef struct abc
{
byte a[22];
ddd struct[22]; 这是结构体里的另外一个结构体

}
C#转译
public struct abc

{
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
byte []a;
ddd!!!!这个结构体怎么定义!!!
}
我这样写应该懂我的意思吧!!!
展开
 我来答
吾本大师
2013-04-03 · TA获得超过302个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:222万
展开全部
不知道你的ddd的结构原型是怎样,你需要预先在C#里定义好 ddd,才能在abc里声明,如果ddd内还嵌套,请依次类推
追问
假如
public struct ddd
{
int a;

}
主要不知道ddd的长度怎么声明
就像C++中byte a[22]
在C#中要写成
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
byte []a;
追答
{
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 22, ArraySubType = UnmanagedType.I1)]
byte []a;
[MarshalAs(UnmanagedType.ByValArray,SizeConst=22)]
public ddd [] struct;
}
//SizeConst是数组长度
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式