读书人

请问一个C# 向C++封送的有关问题

发布时间: 2013-04-20 19:43:01 作者: rapoo

请教一个C# 向C++封送的问题

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

读书人网 >VC

热点推荐