Я работаю с пакетами, которые я могу получить или отправить как массив байтов, , который имеет фиксированную структуру. Так что я пытаюсь создать эффективный союз следующим образом:Союзы структур фиксированного размера для использования в безопасном контексте
using System; // etc..
namespace WindowsApplication1
{
public partial class Main : Form
{
public const int PktMaxSize = 124;
// ...etc..
// ...will use Pkt structure below...
}
[System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)]
public struct Pkt
{
[System.Runtime.InteropServices.FieldOffset(0)]
fixed Byte bytes[Main.PktMaxSize]; // complete byte pkt
[System.Runtime.InteropServices.FieldOffset(0)]
fixed Byte PktID[8];
[System.Runtime.InteropServices.FieldOffset(8)]
UInt16 Properties;
// ...etc..
}
}
Я получаю C# Ошибка
Указатели и буферы размера могут быть использованы только в небезопасном контексте
Что мне нужно сделать, чтобы создавать и использовать «небезопасные» структуры в безопасном режиме?
Благодарим за помощь. Откройте все предложения относительно того, как обращаться с структурами пакетов, которые могут быть легко преобразованы в и из потока фиксированного байта, получаемого (или отправленным) классом взаимодействия C++.