如何让我的结构变得blittable?

时间:2017-11-30 12:51:18

标签: c# c marshalling raknet

我正在使用RakNet作为C#的C插件。我正好接收数据包char*并根据需要将其转换为byteIntPtr,而无需复杂的互操作。然而,作为一种生活质量调整,我决定最好不要返回包含数据包信息的结构而不仅仅是数据本身。尽管结构相当简单,但我无法让它发挥作用:

在C:

typedef struct SmartPacket
{
    unsigned char id;
    unsigned char* data;
    unsigned long long guid;
    char* sysAddress;
}SmartPacket, *PSmartPacket;

在C#中:

[StructLayout(LayoutKind.Sequential)]
struct SmartPacket
{
    public byte id;
    public byte[] data;
    public ulong guid;
    public byte[] sysAddress;
};

我做错了什么/我该怎么做这个blittable?

0 个答案:

没有答案