0

我需要一个数组structs(它们都是非托管structs的,大小固定),但显然 Visual Studio 不喜欢我的代码。

基本上我需要类似的东西

fixed page_table tables[1024];在我的结构中。

这是使视觉工作室适合的代码,无论如何我可以实现这一点(我需要它全部预先初始化)

[StructLayout(LayoutKind.Explicit, Pack = 1)]
public unsafe struct page_directory
{
    [FieldOffset(0)]
    public fixed page_table tables[1024];

    [FieldOffset(0x8000)]
    public fixed uint tablesPhysical[1024];

    [FieldOffset(0x9000)]
    public uint physicalAddr;
}

[StructLayout(LayoutKind.Explicit, Pack = 1)]
public unsafe struct page_table
{
    [FieldOffset(0)]
    public fixed page pages[1024];
}
4

1 回答 1

1

错误信息非常清楚。除了列出的固定缓冲区之外,您不能使用任何其他类型。

错误消息甚至为您提供了可能的解决方案,要么使用允许的类型之一,要么不使用固定缓冲区。

如果您真的需要您尝试使用的代码,那么您已经到了无法做任何您想做的事情的地步。

于 2013-01-19T09:19:21.137 回答