Convert C++ struct to C#
c#, c++, struct
Solution
The C# version of this struct would be:
[StructLayout(LayoutKind.Sequential)]
public struct CustomData
{
public int id;
public ushort port;
public uint ip;
}
As for sending this via a socket, you can just send the binary data directly. The Marshal class has methods for getting a pointer (IntPtr) from the structure and copying into a byte array.
Problem
I have a C++ struct below: ``` struct CUSTOM_DATA { int id; u_short port; unsigned long ip; } custom_data; ``` How can i convert it to C# struct, serialize it and send via tcp socket? Thanks! upd So C# code will be? ``` [StructLayout(LayoutKind.Sequential)] public struct CustomData { public int id; public ushort port; public uint ip; } public void Send() { CustomData d = new CustomData(); d.id = 12; d.port = 1000; d.ip = BitConverter.ToUInt32(IPAddress.Any.GetAddressBytes(), 0); IntPtr pointer = Marshal.AllocHGlobal(Marshal.SizeOf(d)); Marshal.StructureToPtr(d, pointer, false); byte[] data_to_send = new byte[Marshal.SizeOf(d)]; Marshal.Copy(pointer, data_to_send, 0, data_to_send.Length); client.GetStream().Write(data_to_send, 0, data_to_send.Length); } ```