Yanghn Notes

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            10 Posts :: 10 Stories :: 2 Comments :: 0 Trackbacks
          unit Unit1;
          
          interface
          
          uses
            Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
            Dialogs, StdCtrls;
          
          type
            //晚綁定,也就是動態調用外部函數主要用以下三個命令:
            //LoadLibrary:獲取 DLL
            //GetProcAddress:獲取函數
            //FreeLibrary:釋放
          
            //定義一個過程類型,參數要和需要的函數一致
            TMB = function(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;
          
            TForm1 = class(TForm)
              Button1: TButton;
              procedure Button1Click(Sender: TObject);
              procedure FormCreate(Sender: TObject);
              procedure FormDestroy(Sender: TObject);
            private
              MB: TMB;  {聲明函數 MB}
              inst: LongWord;  {聲明一個變量來記錄要使用的 DLL 句柄}
            public
              { Public declarations }
            end;
          
          var
            Form1: TForm1;
          
          implementation
          
          {$R *.dfm}
          
          procedure TForm1.FormCreate(Sender: TObject);
          begin
            inst := LoadLibrary('user32.dll');
            if inst <> 0 then
              MB := GetProcAddress(inst, 'MessageBoxW');
          end;
          
          //調用測試:
          procedure TForm1.Button1Click(Sender: TObject);
          var
            t,b: PChar;
          begin
            t := '標題';
            b := '內容';
            MB(0, b, t, 0);
          end;
          
          procedure TForm1.FormDestroy(Sender: TObject);
          begin
            FreeLibrary(inst);  {記得釋放}
          end;
          
          end.
          posted on 2010-05-10 10:07 小海 閱讀(211) 評論(0)  編輯  收藏 所屬分類: 雜七雜八
          主站蜘蛛池模板: 崇义县| 乌兰察布市| 永德县| 永年县| 徐水县| 济宁市| 科技| 台前县| 陵水| 朝阳县| 永泰县| 沐川县| 资阳市| 札达县| 华阴市| 三亚市| 赤水市| 通山县| 天峨县| 蕉岭县| 都昌县| 河曲县| 达拉特旗| 常州市| 昌图县| 米脂县| 南漳县| 肇源县| 万盛区| 长岛县| 霍州市| 德州市| 建昌县| 鹤山市| 乌拉特中旗| 北辰区| 青阳县| 鄂州市| 县级市| 贵州省| 遵义县|