导入C封装的库如下:

public const string RelativeDir = "..\\ThirdPartySdk\\Test\\";
 [DllImport(RelativeDir + "HCSDK.dll")]
 public static extern bool NET_Init();

C#结构体与C#结构体互转

        [StructLayout(LayoutKind.Sequential)]
        public struct Real_Login_Info_SDK
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 33)]
            public string strDeviceIp;
            public int iPort;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
            public string strUserName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
            public string strPassword;
            public int iType;
        }

C#托管内存与非托管内存转换

非托管内存转托管内存

            byte[] bBuf = new byte[nDataLen];
            Marshal.Copy(pBuffer, bBuf, 0, nDataLen);

托管内存转非托管内存

IntPtr pnt = Marshal.AllocHGlobal(size);
Marshal.Copy(bPs, 0, pnt, size);
Marshal.FreeHGlobal(pnt);