如果你能改方法签名,直接把ref byte改为byte[]:
ublic static extern bool GetDVRIPByResolveSvr(string sServerIP, ushort wServerPort, byte[] sDVRName, ...);

解决方案 »

  1.   

    改下这个函数声明,如果不想改,传数组首元素也可以byte[] b = { ... };
    GetDVRIPByResolveSvr(..., b[0], ...);
      

  2.   

    如果是内联编译的本地方法,方法名是不能修改的。
    ref byte其实很好处理,你只要这样写即可:
    byte[] DDNSDevSN = Encoding.UTF7.GetBytes(Txt_DveSN.Text);
    传递:ref DDNSDevSN[0]
    如果是可回传的内容,数组长度需要增大些,以免写入时超出数组长度导致数据溢出。