0

我需要能够执行以下操作:

public struct entry_h
{
    public ulong fileid;
    public byte hash[20];
};

就像在 C/C++ 中一样

我正在对结构进行不安全的指针转换,这就是我需要能够做到这一点的原因。:/

entries[i].ehash = *(entry_h*)(src + header_size + (R64(pup->entryCount) * 0x20) + (i * 0x20));
4

1 回答 1

0

如果您在 C# 中使用 unsafe 关键字,则结构通过 fixed 关键字支持固定大小的缓冲区。

http://msdn.microsoft.com/en-us/library/zycewsya%28v=vs.80%29.aspx

例子:

public fixed byte hash[20];

否则,通过安全代码,它会是这样的:

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] hash;
于 2013-06-23T11:33:43.443 回答