windows.pas里面包含的函数是不是未经封装的window api 啊?
如果是的话,那么为什么delphi还要多此一举用windows把他们包含进来呢?另外,好像说TMSG是windows定义的消息结构体,而TMessage是delphi定义的消息结构体。对吗?
不是说“T”开头的是delphi语言定义类的标志吗?怎么TMSG会是Windows定义的呢?

解决方案 »

  1.   

    windows.pas 单元是对window的一些API进行引用声明.方便你调用.至于 T, 我真不知道如何该跟你说.唉.
      

  2.   

    windows.pas 单元是对window的一些API进行引用声明.方便你调用.
    -------------------------------
    那么说,里面包括了全部的windows api的引用声明?
    没有在里面声明的windows Api就不能在delphi中使用?
      

  3.   

    windows.pas只是定义了windows.h所包含的WINAPI函数,方便Delphi调用,常用的WINAPI都在这个单元里。至于"T"开头的类型只是一种习惯,Borland习惯这么做,VC习惯以"C"开头。windows.pas里的TMsg相当于windows.h里的MSG,都是一个record/struct。Delphi有良好的习惯,所有的类型都会以T开头,这也是因为Delphi代码是不分大小写的;
    而windows.h的习惯是把结构类型的字母都大写。// windows.pas
    { Message structure }
      PMsg = ^TMsg;
      tagMSG = packed record
        hwnd: HWND;
        message: UINT;
        wParam: WPARAM;
        lParam: LPARAM;
        time: DWORD;
        pt: TPoint;
      end;
      {$EXTERNALSYM tagMSG}
      TMsg = tagMSG;
      MSG = tagMSG;
      {$EXTERNALSYM MSG}// windows.h
    typedef struct {
        HWND hwnd;
        UINT message;
        WPARAM wParam;
        LPARAM lParam;
        DWORD time;
        POINT pt;
    } MSG, *PMSG;
      

  4.   

    windows.pas只是定义了windows.h所包含的WINAPI函数,方便Delphi调用,常用的WINAPI都在这个单元里。
    windows.pas里的TMsg相当于windows.h里的MSG。
    -----------------------------------------------------------------------------------
    那么不在windows.pas里面定义的 windows.h包含的WinApi 能不能在delphi里面调用?该怎么调用?谢谢。
      

  5.   

    那么不在windows.pas里面定义的 windows.h包含的WinApi 能不能在delphi里面调用?该怎么调用?谢谢。///////////////////////////可以能过加载DLL调用,呵呵