读书人

C#调用C++结构体转换有关问题

发布时间: 2013-03-28 10:20:24 作者: rapoo

C#调用C++结构体转换问题
各位大神,在使用C#调用一个C++的库的时候,其中有个参数是一个结构体,结构体里面有一个数组:
typedef unsigned charBYTE;
typedef struct{
BYTE byRes1[20];
}ANTS_NET_DVR_DEVICEINFO

这个结构该在C#怎么定义?

[解决办法]

引用:
C# code?1234 public struct ANTS_NET_DVR_DEVICEINFO { public byte []byRes1 = new byte[20]; }

这种问题网上搜搜一大堆,居然还能给出这么幼稚的答案。
    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;
}


希望可以解决你的问题O(∩_∩)O~

读书人网 >C#

热点推荐