我将托管C ++代码移植到C#。我试图转换一段代码,其中函数参数是一个字节数组,但随后在函数体内,它被转换为结构指针并在整个函数中使用。
如何在不使用unsafe / pointers的情况下将本机数据类型转换为c#中的结构?
代码:
public byte[] Mail( byte[] mailbox, byte[] sst )
{
pin_ptr<unsigned char> header = &mailbox[0];
PCMP_MAIL_HEADER pHeader = (PCMP_MAIL_HEADER)mailbox;
int BodySize = (int) pHeader.MailLength;
...
}
PCMP_MAIL_HEADER是用户定义的结构。我需要将邮箱强制转换为该结构。