书中说,编译器会自动转换string和widestring,但实际使用中会发生错误,为什么?怎么解决!
procedure TForm1.Button5Click(Sender: TObject);
var str:string;
    wstr:widestring;
begin
  str := #$1b#$a2#$65#$01#$00#$90#$07#$90;
  dispmsg('s:'+strtohex(str));
  wstr := str;
  dispmsg('w:'+strtohex(wstr));
  str := '';
  str := wstr;
  dispmsg('d:'+strtohex(str));
end;
结果:
Memo1
s:1BA2650100900790
w:1BA26501003F00
d:1BA26501003F00

解决方案 »

  1.   

    我觉得问题出在str to hex上,我感觉string和widestring转换为hex的方法并不是相同的!
      

  2.   

    问题出在转换上:
    procedure TForm1.Button5Click(Sender: TObject);
    var str:string;
        wstr:widestring;
    begin
      str := #$1b#$a2#$65#$01#$00#$90#$07#$90;
      dispmsg('s:'+strtohex(str));
      wstr := str;
      str := wstr;
      dispmsg('d:'+strtohex(str));
    end;
    结果:
    Memo1
    s:1BA2650100900790
    d:1BA26501003F00