程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi從Dll中導出類(3)

Delphi從Dll中導出類(3)

編輯:Delphi

第三步 ,主程序驅動引擎的實現 :

這一步相對來說容易些 -- 無非是動態加載 Dll,然後調用 GetClassCount 函數 ,接著調用 GetClassByIndex 。關鍵的代碼 :

Var AClass: TMyBaseClass;
AForm: TMyBaseForm;
I, iCount: integer;
blResult: Boolean;
begin
   // 略去加載動態庫的部分 ,假定 FPGetClassProc 指向 GetClassCount 函數 ,FPGetClassByIndexProc 指向 GetClassByIndex,則 :
iCount := FPGetClassProc;
for I := 0 to iCount - 1 do
begin
AClass := FPGetClassByIndex(I, blResult);
if blResult then
begin
AForm := AClass.Create(Application);
AForm.Caption := AForm.GetTitle;
AForm.Show;
end;
end;
// …
end;

注意一點 ,和 Dll 相似 ,創建輸出文件的時候 ,也需要選擇使用運行時間包 。這是因為 ,如果不使用運行時間包 ,將導致相同的類在內存中有多個副本 ,因 而對它們使用 Is 操作符的將返回 False 的結果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved