请教一个C# 向C++封送的问题
public struct SXPSERVERC#里定义的结构
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
public byte [] bNodeaddr;
public uint dwIp;//IP地址
[MarshalAs(UnmanagedType.ByValArray, SizeConst=16)]
public Char[] szMachineType;
}
SxuptpEnumDeviceServers(dwBroadcast, 2, &gsxsrv,C++里函数 &gsxsrv定义为SXPSERVER gsxsrv[16] 请问我C#里如何封送结构体数组进去? c++ c# 封送
(sizeof(SXPSERVER) * MAX_PSERVER), &dwReaded, &dwReturned) == FALSE
[解决办法]
本帖最后由 hdt 于 2013-04-03 14:23:54 编辑 Marshal.UnsafeAddrOfPinnedArrayElement
[解决办法]
SXPSERVER[] temp = new SXPSERVER[16];
IntPtr ptr = UnsafeAddrOfPinnedArrayElement(temp,0);
然后把这个Ptr传过去