调用API的参数问题。 ( 积分: 100 )

  • 主题发起人 主题发起人 deve
  • 开始时间 开始时间
D

deve

Unregistered / Unconfirmed
GUEST, unregistred user!
在tlhelp32单元中有一个api声明如下<br>function Process32First(hSnapshot: THandle; var lppe: TProcessEntry32): BOOL;<br>其中的lppe在sdk帮助中为一个指向ProcessEntry32结构的指针,而delphi中就声明为一个ProcessEntry32的结构,为什么这样调用win32api也行,是不是跟上面增加的$EXTERNALSYM指示字有关。
 
在tlhelp32单元中有一个api声明如下<br>function Process32First(hSnapshot: THandle; var lppe: TProcessEntry32): BOOL;<br>其中的lppe在sdk帮助中为一个指向ProcessEntry32结构的指针,而delphi中就声明为一个ProcessEntry32的结构,为什么这样调用win32api也行,是不是跟上面增加的$EXTERNALSYM指示字有关。
 
var lppe: TProcessEntry32;参数是传地址的,跟定义成lppe: PProcessEntry32的参数传递是完全一样的,不同的仅仅是在函数中两种定义对数据的访问形式不一样而已。
 
那就是说<br>在(var lppe:TProcseeEntry32)中<br>lppe.成员函数。<br>而在(lppe:PProcessEntry32)中就成为了<br>lppe^.成员函数<br>指针类型可以用var来转换,感觉怪怪的。<br><br>谢谢回答问题。
 
后退
顶部