本帖最后由 zhulong1111 于 2014-11-04 11:47:00 编辑

解决方案 »

  1.   

    pCar 不管用string  byte[]  char[] 等去接收,数组长度都为1,有没大神知道什么情况
      

  2.   

    首先保证都是stdcall约定,试试用stringbuilder接收char*
      

  3.   

    stdcall约定? 什么意思 。。我也用stringbuilder接收了  但都是一样的效果 本来是个完整的车牌。 我这不C# 回调就只有一个B  好像就出来一个字符  (粤B123456  我这边就得到个B  粤C123456  就得到个C)
      

  4.   

    以前弄过几次,不过不是很了解,记得主要要注意的是一些编译类型如:[DllImport("XX.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]如果长度是1的话可能里面获取到的是地址的指针,建议查看下动态库确认下
      

  5.   

    pCar 字符串,需要添加 Unicode 。
      

  6.   

    [MarshalAs(UnmanagedType.LPWSTR)] string pCar
      

  7.   

    pChar是指针类型,pChar读取的是保存的地址指向的内存的值,仅仅读取一个字节。返回这个字符的ASCII编码