type
   TFindWindow = function (lpClassName, lpWindowName: PChar): HWND; stdcall;
   TFindWindowA = function (lpClassName, lpWindowName: PAnsiChar): HWND; stdcall;
   TFindWindowW =function (lpClassName, lpWindowName: PWideChar): HWND; stdcall;
不知道作何解释?

解决方案 »

  1.   

    过程类型定义,定义过程类型,其实本质就是一个指针,指向一个特定的过程类型(包括过程或函数)。
    然后,你就可以把过程或函数赋给该类型的变量(当然,要符合原型)。然后可以通过他调用具有相同原型的例程(过程或函数)。比如,
    type 
      TFindWindow = function (lpClassName, lpWindowName: PChar): HWND; stdcall; 
    var
      fw: TFindWindow;
    begin
      fw:= func1;  {赋值}
      fw(参数列表); {调用}
      fw:= func2;
      fw(参数列表);
      fw:= func3;
      ...
    end;
    就像TButton类的OnClick事件,他其实就是一个过程类型,是TNotifyEvent,只不过他是指向类方法的过程类型。
    如,type TNotifyEvent = procedure (Sender: TObject) of object;
    明白了么?
      

  2.   

    啊对了,后面这两个:HWND; stdcall; 
    stdcall我知道是参数调用约定,而:HWND是什么意思呢?谁能告诉我?