111,094
社区成员




struct TagPoint
{
int x;
int y;
};
struct TagRect
{
int x;
int y;
int width;
int Height;
};
struct TagInfos
{
char* name;
TagPoint* pointList;
TagRect rect;
int pointCount;
};
struct FSize
{
int width;
int height;
int depth;
};
struct TagImageInfos
{
char* path;
TagInfos* tagList;
FSize imageSize;
bool isLable;
int tagCount;
};
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct TagPoint
{
/// int
public int x;
/// int
public int y;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct TagRect
{
/// int
public int x;
/// int
public int y;
/// int
public int width;
/// int
public int Height;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct TagInfos
{
/// char*
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)]
public string name;
/// TagPoint**
public System.IntPtr pointList;
/// TagRect
public TagRect rect;
/// int
public int pointCount;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct FSize
{
/// int
public int width;
/// int
public int height;
/// int
public int depth;
}
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct TagImageInfos
{
/// char*
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)]
public string path;
/// TagInfos**
public System.IntPtr tagList;
/// FSize
public FSize imageSize;
/// boolean
public bool isLable;
/// int
public int tagCount;
}
private IntPtr Cov<T>(T[] ps)
{
int ik = ps.Length;
int len = Marshal.SizeOf(typeof(T));
IntPtr ptr = Marshal.AllocHGlobal(len * ik);
IntPtr[] ts = new IntPtr[ik];
for (int i = 0; i < ik; i++)
{
ts[i] = Marshal.UnsafeAddrOfPinnedArrayElement(ps, i);
}
Marshal.Copy(ts, 0, ptr, ik);
return ptr;
}
但是实际上传的结构体类型还要复杂一点