線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1444
推到 Plurk!
推到 Facebook!

在主程式連續呼叫三、四支DLL檔, 要如何才可指定釋放DLL檔

尚未結案
0316
一般會員


發表:32
回覆:19
積分:10
註冊:2002-07-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-23 11:59:36 IP:210.202.xxx.xxx 未訂閱
一.我的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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-23 12:50:31 IP:210.71.xxx.xxx 未訂閱
如果呼叫DLL的數量是固定的 我想..你可以直接定義多個Handle 就Programming Windows 5th 說的 其實就算你用同一個Handle Name 其實還是可區分
系統時間:2024-05-02 5:54:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!