C++中的函数:unsigned char  __stdcall   RegRead(unsigned char* data);data为传出数据的首地址(实用4byte),从网上获得的资料是用StringBuilder替代,即:private static extern byte RegRead(StringBuilder d);我这样试了,运行是可以的,但我怎样把d数据再转换成byte[]数据呢?谢谢!分数不多见谅

解决方案 »

  1.   

    System.Text.Encoding.ASCII.GetBytes(d);
    这个是ASCII编码,如果是其它编码对应换一下就可以了
      

  2.   


    能帮我具体点吗?我要获得byte[]数组数据,数据类型是hex,谢谢!
      

  3.   

    直接传byte[]就可以了。
    fix(byte * pbt=byts[][0])
    {
     byte *p =pbt;
    传p就可以了。
    byte[]的值会自动改变。
    }
      

  4.   


                byte[] byteSb = System.Text.Encoding.UTF8.GetBytes(d.ToString());
      

  5.   

    改成这样:[DllImport("xxx.dll", EntryPoint = "RegRead")]
    public static extern byte RegRead(IntPtr d);使用:
    IntPtr ptr=new IntPtr();
    byte len=RegRead(ptr);byte[] bytes = new byte[size];
    Marshal.Copy(ptr, bytes, 0, size);
      

  6.   

    谢谢各位的帮忙,nrylovecjb的方法可以用。