在主程式連續呼叫三、四支DLL檔, 要如何才可指定釋放DLL檔 |
尚未結案
|
0316
一般會員 發表:32 回覆:19 積分:10 註冊:2002-07-03 發送簡訊給我 |
一.我的DLL檔的大致架購:
library DLL_1;
uses
SysUtils,
Classes,
Forms,
Main in '..\SysAuth\Main.pas' {frmMain}, // Main Form
Query in '..\SysAuth\Query.pas' {frmQuery}, // 查詢Form
LookUp in '..\SysAuth\LookUp.pas' {frmLookUp}, // Lookup Form
DataMdl in '..\REPOSIT\DATAMDL.pas' {DM: TDataModule}; // 資料模組
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end. 二.由主程式(EXE檔)呼叫
// 呼叫DLL檔程式的片斷.....
sDllName := sSubPrg '.dll'; // sSubPrg 名稱不固定
try
ADllHandle := SafeLoadLibrary(sDllName);
finally
FreeLibrary(ADllHandle);
end;
if ADllHandle = 0 then MessageDlg('無法載入 [' sDllName ']', mtError, [mbOk], 0); 以上程式呼叫一個DLL檔,執行完畢關掉再呼叫另一個DLL檔不會有問題,
但當第一個DLL檔尚未結束再呼叫另一個DLL檔,關畢時就會出現錯亂,
我想因ADllHandle 每次產生的代號都是一樣, 所以當呼叫的DLL檔超過兩個以
上, 要關掉時它會以後呼叫先關掉的關唸,所以才會導至錯亂,請問諸位先進
有何方法可以改進, 我是將程式名稱及對應的DLL檔定義在Table裡面,
再讀如ListBox, 當點選ListBox再去呼叫對應的DLL檔 泓遠
------
泓遠 |
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |