C#调用C++结构体转换问题
各位大神,在使用C#调用一个C++的库的时候,其中有个参数是一个结构体,结构体里面有一个数组:
typedef unsigned charBYTE;
typedef struct{
BYTE byRes1[20];
}ANTS_NET_DVR_DEVICEINFO
这个结构该在C#怎么定义?
[解决办法]
public struct ANTS_NET_DVR_DEVICEINFO
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] byRes1;
}
public struct ANTS_NET_DVR_DEVICEINFO
{
[MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
public char[] byRes1;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ANTS_NET_DVR_DEVICEINFO
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] cColorName;
}