dll中定义了函数
int fun1(void** p);
int fun2(void* p);示例程序调用如下:
……
void* p;if fun1(&p)!=0 ……fun2(p);
……用delphi申明函数后,如何这个定义这个变量啊。
void** P是定义成P:PPointer;吗?这样返回的结果不正常啊,谢谢各位指点!

解决方案 »

  1.   

    function fun1(var p: Pointer): Integer;
    function fun2(p: Pointer): Integer;
      

  2.   

    那是C语言里面的转递方式,与Delphi var 一样,一个是值传递,一个是引用传递这样。。
    function fun1(var p: Pointer): Integer; //引用传递
    function fun2(p: Pointer): Integer;//值传递
      

  3.   

    无类型指针:
    C中void *类型,也就是可以指向任何类型数据的指针
    Object Pascal为其定义了一个专门的类型:Pointer
    ptr: Pointer就与C中的void *ptr等价了