void * buffer
unsigned char myByte(unsigned char *buffer,long length, long m)
{
....
long cur = 3456;//在C#中可以写成int32 cur = 3456;
unsigned char * buf;
buf = buffer + cur;//问题是这段代码,buffer在C#中可以写成char[] buffer,可char[]如何加int32
}

解决方案 »

  1.   

    你那个不就是把指定位置的数据拷贝出来么?用string.split
      

  2.   

    在c#中,程序的思路就和C++不一样了.C#里认为指针是不安全的.unsafte char myByte(char buffer,long length,long m)
    {
        long cur=3456;
        return (char)buffer+(char)3456;
    }
      

  3.   


    unsafe char myByte(char* buffer,long length,long m)
    {
        long cur=3456;
        var value=buffer+cur
        return (char)&value;
    }
      

  4.   

    对 看string.split() 有你要的实现
      

  5.   

    不安全代码楼上可以实现。char[]可以转化为string,而long类型或者是int32类型实现了tostring方法,直接相加就可以了。然后string可以很简单的转化为char[].string temp= new string(buffer);
    temp += cur.ToString();
    char[] buf = temp.ToCharArray();如果要是追求效率还是别的,就请华丽丽的无视我吧,小白泪奔~~
      

  6.   


    unsafe
                {
                    char[] buffers = new char[10];
                    fixed (char* buffer = (char*)&buffers[0])
                    {                    long cur = 3456;
                        char* buf = buffer;
                        buf += cur;
                    }
                }