1

我正在使用 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?

4

0 回答 0