熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Dll 中導出類 --Delphi 實戰[2]

2022-06-13   來源: Delphi編程 

  暫不探討這麼一個抽象類提供了多少可供實用的方法和接口 因為我們要討論的是一種技術上的可行性假設作者定義此接口的初衷只是希望獲得任意多變化的 Title而具體 GetTitle 的返回值是什麼需要靠子類來實現並且 作者還希望子類的代碼放在 Dll 中實現 與主程序分離 這樣的方式很有些插件的味道 或許還能實現 Plug&Play 的某些特性 是不是挺吸引人啊?那麼 下一不應該怎麼做呢?

  首先主程序和 Dll 程序應當將上述聲明的單元包含進來 然後 主程序負責實現一個驅動 動態加載 Dll動態加載類 ; 而 Dll 負責實現子類

  先說 Dll 吧 Dll 應當做什麼工作?

  第二步 Dll 中導出子類 :

  我們設計了以下兩個導出函數 :

   .  function GetClassCount: integer; stdcall;

  告訴調用者 本 Dll 中共有幾個子類 ;

   . function GetClassTypeByIndex(const iIndex: integer;

  var ClassType: MyBaseFormClass): WordBool; stdcall;

  以索引方式獲得具體的子類注意 此處的 ClassType 的類型是 MyBaseFormClass這表明 它的值將是一個確定的自 TMyBaseForm 繼承而來的類

  以下是它們可能的一種實現 :

function GetClassCount: integer;

begin

result := ; // 表明本 Dll 中導出了 個類

end;

function GetClassTypeByIndex(const iIndex: integer;

var ClassType: MyBaseFormClass): WordBool;

begin

result := True;

case iIndex of

: ClassType := TFrmTest;

: ClassType := TFrmTest;

: ClassType := TFrmTest;

else

result := False;

end;

end;

[]  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24860.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.