各位大神,在使用C#调用一个C++的库的时候,其中有个参数是一个结构体,结构体里面有一个数组:
typedef unsigned char BYTE;
typedef struct{
BYTE byRes1[20];
}ANTS_NET_DVR_DEVICEINFO这个结构该在C#怎么定义?
typedef unsigned char BYTE;
typedef struct{
BYTE byRes1[20];
}ANTS_NET_DVR_DEVICEINFO这个结构该在C#怎么定义?
解决方案 »
- 复制excel里的所有内容?
- c#中,窗口程序的入口点函数也是 Main()吗?c++中是winmain()呀?
- 问 重写 Repeater 时的一个小小问题
- C# 在窗体1中按下按钮改变窗体2的背景图片,怎么实现?
- ToolStrip里的按钮控件分组问题,在线等到,高手请讲
- 请问如何用批处理查询注册表的键值?并判断该键值是否存在?
- 命名空间和类之间的关系?
- 转贴,收集人气——一点小看法:怎样消除业务逻辑对数据持久的依赖的讨论?
- 怎样动态在TreeView的节点里插入它的字节点。
- 如何将visio保存成web页?
- 修改控件形状的问题
- GridControl 控件的repositoryItemGridLookUpEdit
{
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;
}
估计不是这样的.
我记得有类似这样的
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 20)]
只是找不到合适的类型
给看叉了,呵呵
ByValArray不行,会提示内存错误
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct ANTS_NET_DVR_DEVICEINFO
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] cColorName;
}希望可以解决你的问题O(∩_∩)O~
[StructLayoutAttribute (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct ANTS_NET_DVR_DEVICEINFO
{
[MarshalAsAttribute(UnmanagedType.ByValArray,SizeConst=20)]
public char[] byRes1;
}