public unsafe void Send() { var byteBuffer = Buffer.ToArray(); fixed(byte *bytes = byteBuffer) { var packet = new CDataStore(bytes, byteBuffer.Length, m_Read); var packetLen = Marshal.SizeOf(typeof(CDataStore)); var packetPtr = Marshal.AllocHGlobal(packetLen); Marshal.StructureToPtr(packet, packetPtr, true); try { if (Send2Func == null) { Console.WriteLine(".. Fake [Send2] .."); } else { Send2Func(packetPtr); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Marshal.FreeHGlobal(packetPtr); } } }
public unsafe void Send() { var byteBuffer = Buffer.ToArray(); fixed (byte* bytes = byteBuffer) { var packet = new CDataStore(bytes, byteBuffer.Length, m_Read); var packetLen = Marshal.SizeOf(typeof(CDataStore)); var packetPtr = Marshal.AllocHGlobal(packetLen); Marshal.StructureToPtr(packet, packetPtr, true); try { Send2Func(packetPtr); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Marshal.FreeHGlobal(packetPtr); } } }