导入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);