请问高手:C++中的数据类型(unsigned char *)与C#中的什么数据类型对应?
请高人指点,谢谢了!

解决方案 »

  1.   

    c#中好象不提倡指针类型.一般提倡引用.如果是作为参数传递可以用ref char 来代替
      

  2.   

    使用System.Text.StringBuilder试试吧。
      

  3.   

    我做的是一个读串口数据的程序,我用StringBuilder和char []试过了,能读出来数据但是乱码,不知道是怎么回事!下面是我的程序的代码,麻烦大家帮忙看看,很急的!
    [DllImport("dcid32.dll" , EntryPoint="ID_GetErrInf", CharSet=CharSet.Auto)]
    public static extern System.Int16 ID_GetErrInf(StringBuilder errInfr);
    //__int16 __stdcall  ID_GetErrInf(unsigned char *errInfr);
    //功能:获取错误信息
    //参数:errInfr:详细错误信息
    //返回:成功返回0,错误返回-1
      

  4.   

    我做的是一个读串口数据的程序,我用StringBuilder和char []试过了,能读出来数据但是乱码,不知道是怎么回事!下面是我的程序的代码,麻烦大家帮忙看看,很急的!
    [DllImport("dcid32.dll" , EntryPoint="ID_GetErrInf", CharSet=CharSet.Auto)]
    public static extern System.Int16 ID_GetErrInf(StringBuilder errInfr);
    //__int16 __stdcall  ID_GetErrInf(unsigned char *errInfr);
    //功能:获取错误信息
    //参数:errInfr:详细错误信息
    //返回:成功返回0,错误返回-1
      

  5.   

    String中的一段Code:
        fixed (char* local1 = &m_firstChar)
            {
                int num2 = currentLength;
                while (num2 < num1)
                {
                    local1[num2] = value;
                    num2++;
                }
                local1[num2] = '\0';
            }
      

  6.   

    另一段Code你可以参考一下:
    [DllImport("myfunc.dll")]
    private static extern unsafe int dummy(byte *array);
    // The byte array.
    byte[] bytes = new byte[5000];// Declare an unsafe block, or you can put this on the method.
    unsafe
    {
      // Fix the byte array.
      fixed (byte *array = bytes)
      {
        // Make the call here, passing in the array.
        int retVal = dummy(array);
      }
    }
    (http://dotnet247.com/247reference/msgs/58/292873.aspx)乱码可能是因为StringBuilder会调用(byte type)value.ToString(CultureInfo.CurrentCulture),经过转换后的内容可能已经不是原来的byte了.
      

  7.   

    StringBuilder在使用前需要指定大小的,
    比如:
    StringBuilder objStringBuilder = new StringBuilder(255);