info 定义为TCHAR[512]
buff 定义为unsigned char buff[1024]info[i]=buff[i*2]|(buff[i*2+1]<<8)

解决方案 »

  1.   

    TChar一个宏定义类型,根据字符编码,不同的编码使用的字节数是不同的,
    但从楼主的问题看,应该是Unicode编码,占两个字节,而C#中char都是Unicode编码,默认双字节            char[] info = new char[512];
                byte[] buffer = new byte[1024];            for (int i = 0; i < 512; i += 2)
                {
                    info[i] = (char)(buffer[i * 2] | buffer[i * 2 + 1] << 8);
                }
      

  2.   

    楼主,建议你不要死抓着c++的内存拷贝不放,类似的功能。.net下通过Encoding.GetString和Encoding.GetBytes实现。
      

  3.   

    结贴,没办法,对方给的就是c++的代码,这个是从api中取出来的byte[],然后再加工才能使用