我想把一个Pointer类型的通用指针变量转换为Integer类型的指针变量然后取出
其中的整数。

解决方案 »

  1.   

    Pointer 指向的是一个地址哦? 你是想要地址指向的值吧?a :pointer;
    如果a 是integer 类型指针的话,
    a^ 应该就可以了。
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var Po: Pointer;
        aa: integer;
    begin
      aa := 1;
      Po := @aa;
      Edit1.Text := IntToStr(integer(Po^));
    end;
      

  3.   

    >>我想把一个Pointer类型的通用指针变量转换为Integer类型的指针变量然后取出
    其中的整数。
    var P: pointer;
        i, j: integer;
    begin
     getMem(p, 8);
     j := 10;
     copyMemory(p, @j, sizeOf(j));
     i :=  Pinteger(p)^;
     showMessage(inttoStr(i));
    end;
      

  4.   

    可是a是一个pointer类型的指针,就像C中的VOID *, 因此我不知道如何在Delphi中进行
    指针类型的强制转换?????
      

  5.   

    >>我想把一个Pointer类型的通用指针变量转换为Integer类型的指针变量然后取出
    其中的整数。
    var P: pointer;
        i, j: integer;
    begin
     getMem(p, 8);
     j := 10;
     copyMemory(p, @j, sizeOf(j));
     i :=  Pinteger(p)^;
     showMessage(inttoStr(i));
    end;
      

  6.   

    Pinteger(P)^就行了,还有PBYTE(P)^,PWORD(P)^,PLONGINT(P)^是从指针中获得相应字节大小的数据
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j: integer;
      pi,pj: pointer;
    begin
      i:=10;
      pi:=@i;
      pj:=pi;
      j:=integer(pj^);
      showmessage(inttostr(j));
    end;