我正在使用 RakNet 作为 C# 的 C 插件。我可以很好地接收数据包并根据需要char*
投射它们,而无需复杂的互操作。然而,作为一种生活质量调整,我决定我最好返回一个包含数据包信息的结构,而不仅仅是数据本身。尽管结构相当简单,但我无法让它工作:byte
IntPtr
在 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?