lpszInputBuffer: Array[0..4096] of char; ReadFile(hComDev,lpszInputBuffer,CommState.cbInQue,dwNumber,@Read_os)memo1.text:=strpas(lpszInputBuffer);这是我的代码, 为什么显示不出中文呢,英文可以显示, 中文可以转换成ASCII码显示,可就是没有办法直接显示请教各位老师是为什么, 如何才能显示,  我是新手 ,谢谢了. 

解决方案 »

  1.   

    呵~~,回复得太快了。汉字:WideChar;
    宽字符串:WideString;
    ASCII字符:char;在delphi中,string类型是可以兼容WideString类型数据的。sizeof(widechar)=2;
    sizeof(char)=1;var
    lpszInputBuffer: Array[0..4096] of char; 
    str:string;
    ....
    setlength(str,4097);
    move(lpszInputBuffer,str[1],4097);
    memo1.lines.add(str);
    试试。
      

  2.   

    中文可以转换成ASCII码显示,可就是没有办法直接显示这是什么意思?中文是由两个字节组成的。必须成对才能显示正确的中文。
      

  3.   

    dinglinger(红辣椒) 谢谢你  .因为是调用API的 , 所以串口发过来的数据反应很快, 当发一个字节就响应了, 所以造成显不出汉字, 因为汉字的ASII码是两个字节.所以每次收到一个字节,我就让它显示,难怪它显示不出来.  这几天弄了好久, 都是因为有很多东西不明白造成的.