var
  msgbuf:array[0..4095] of byte;
  stackbuf:pointer;
  msglen:integer;
begin
  .....
  ....
  msglen:=integer(sendbuf[0]+(sendbuf[1] shl 8));
  getmem(stackbuf,msglen);
  move(msgbuf[0],stackbuf^,msglen);
  tmpstr:=inttostr(integer(stackbuf));
  ...
end;
为什么不对呢?不能显示出来呢?是不是inttostr(integer(stackbuf));写错了呢?
请大家帮帮忙,谢谢大家!!!!

解决方案 »

  1.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      msgbuf:array[0..4095] of byte;
      stackbuf:pointer;
      msglen:integer;
      tmpStr:string;
    begin
      msglen:=integer(msgbuf[0]+(msgbuf[1] shl 8));
      getmem(stackbuf,msglen);
      move(msgbuf[0],stackbuf^,msglen);
      tmpstr:=inttostr(integer(stackbuf));
      ShowMessage(tmpStr);
    end;这样改行不吗, 不明白你要做什么
      

  2.   

    tmpstr:=inttostr(integer(@stackbuf));這樣可以嗎?
      

  3.   

    tmpstr:=inttostr(integer(@stackbuf));这样不可以的.谢谢你!
      

  4.   

    pstr : pchar;
     
     pstr := pchar(@msgbuf[0]);
     showmessage(pstr);