小编twe*_*llt的帖子

将C结构移植到C#

我正在将C代码移植到C#中,我对此有些怀疑。

考虑以下结构:

typedef struct
{
  uint32_t       w;
  uint32_t       h;
  uint32_t       f_cc;
  uint32_t       st;
  unsigned char *pl[4];
  int32_t        strd[4];
  void         (*done)(void *thisobj);
  void          *e_cc;
  uint32_t       rsrvd2;
  uint32_t       rsrvd3;
} f_tt;
Run Code Online (Sandbox Code Playgroud)

我已经做到了,但它不起作用(可能是因为它是错误的:-/):

[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct f_tt
{
    public uint w;
    public uint h;
    public uint f_cc;
    public uint st;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
    public Byte[] pl;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
    public int[] strd;
    public delegate void done(IntPtr thisobj);
    public delegate void e_cc();
    public uint rsrvd2;
    public uint rsrvd3;
} …
Run Code Online (Sandbox Code Playgroud)

c c# pinvoke

2
推荐指数
1
解决办法
6107
查看次数

标签 统计

c ×1

c# ×1

pinvoke ×1