EXE + DLL 檔討論 |
尚未結案
|
0316
一般會員 發表:32 回覆:19 積分:10 註冊:2002-07-03 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請問是否有人開發過類似的MIS系統, 以進銷存為例.... 主選單Menu畫面.exe檔, 其餘的程式為.dll檔(廠商主檔、客戶主檔、產品主檔..) 假設從主Menu畫面依序呼叫三個作業畫面1=廠商主檔、2=客戶主檔、3=產品主檔 但沒有馬上關閉, 稍後也許關閉的順序為213, 我曾經這樣試過但會發生錯亂, 當我關閉2=客戶主檔, 但它卻關閉3=產品主檔, 如果有這方面經驗的人可否多加 指教, 謝謝 泓遠我向來都是如此做, 我做法只有Menu為主程式, build出來只有600k, 其他全部 用動態載入dll(所謂動態是指dll檔可以在磁碟的任何位置, 我傳入路徑及dll檔名即可執行, 不是一般書上介紹直接在menu中指定執行路徑的靜態dll), 但並不曾發生你的狀況, 因為每一個dll的載入都在記憶體中是一個獨立的區塊, 並不會影響 另外, 我的經驗是在寫這類系統時, 我儘量是用showmodal, 有個案子是因為我用show方式 結果客戶連開了十數個 form造成資源嚴重耗損而當機! 再, 因為dll也等同於一 支執行檔, 所以要把mainmenu當成MDI的MASTERform, 而dll檔當成CHILDform的 可能性似乎很低, 所以沒有辦法寫成整體的MDIform(我沒有這方面技術, 或許其 他網友能解決), 所以你用 showmodal的話, 上述的情況應也可避免掉! 發表人 - P.D. 於 2003/01/07 12:27:23 |
0316
一般會員 發表:32 回覆:19 積分:10 註冊:2002-07-03 發送簡訊給我 |
P.D.謝謝你的指導 , 我先前的做法是將主程式呼叫的DLL檔名定義在Table裡,
然後在讀入TListBox裡, 然後在TListBox DblClick後再自動去執行被呼叫的
DLL檔, 呼叫程式碼大致如下
var
SubPrgHandle: array[N] of THandle // 雖用陣列但每次產生的代號卻一樣
begin
N = 每支程式所產生的數字不一樣
SubPrgHandle[N] := SafeLoadLibrary(sDllName); // 載入DLL
......
FreeLibrary(SubPrgHandle[N]); // 釋放DLL
end
我先前也是用ShowModal的方式但仍會有錯誤, 請問你是如何載入及釋放dll檔,
如不吝告知,當之銘感五內, 另我們公司使用的是鼎新Workflow ERP系統,
它們也是使用EXE DLL檔的方式 泓遠
------
泓遠 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |