如果你能改方法签名,直接把ref byte改为byte[]:
ublic static extern bool GetDVRIPByResolveSvr(string sServerIP, ushort wServerPort, byte[] sDVRName, ...);
ublic static extern bool GetDVRIPByResolveSvr(string sServerIP, ushort wServerPort, byte[] sDVRName, ...);
GetDVRIPByResolveSvr(..., b[0], ...);
ref byte其实很好处理,你只要这样写即可:
byte[] DDNSDevSN = Encoding.UTF7.GetBytes(Txt_DveSN.Text);
传递:ref DDNSDevSN[0]
如果是可回传的内容,数组长度需要增大些,以免写入时超出数组长度导致数据溢出。