當有資料更改時儲存並關閉後就會發生錯誤 |
答題得分者是:Mickey
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
各位前輩有個問題想請教:
本人的程式是由主程式呼叫dll檔.dll檔含一個dataModule . dll元件及部份程式如下: 一,元件: dataModule : TSQLConnection TSQLDataSet dll: TDataSetProvider TClientDataSet TDBGrid TDataSource; 二,主程式呼叫方式如下: try LibHandle:=LoadLibrary(pchar( EmployeeManage.dll)); if LibHandle = 0 then begin exit; end; @ExcuteFunc:=GetProcAddress(LibHandle,pchar(ShowEmployeeManageForm)); ExcuteFunc; FreeLibrary(LibHandle); except on e : exception do end; 三.dll的部份程式: unit UniEmployeeManage; interface uses (省略) procedure ShowEmployeeManageForm;export; exports ShowEmployeeManageForm; type . . implementation {$R *.dfm} procedure ShowEmployeeManageForm; begin try frmEmployeeManage:= TfrmEmployeeManage.Create(Application); frmEmployeeManage.ShowModal; except end; end; procedure TfrmEmployeeManage.FormCreate(Sender: TObject); begin DataModule1 := TDataModule1.Create(Application); .. .. .. end; procedure TfrmEmployeeManage.FormClose(Sender: TObject; var Action: TCloseAction); begin DataModule1.Free; end; 問題是:在dll檔出現後,若有更新任何資料,儲存且關閉dll後,就會出現錯誤"應用程式發生例外:不明的軟體例外錯誤"; 若沒有任何資料更新並儲存就不會有問題. 請各位幫忙解決,謝謝!! 編輯記錄
mingking0947 重新編輯於 2007-10-16 11:04:21, 註解 無‧
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
你好:
針對 DLL 中之全域變數 "Application"...應該是 呼叫此 DLL 的主程式... 所以...建議不要用Application 當 Owner( 因為不知"主程式"是否會盡到 Owner 的職責 )... 沒有 Owner 當然自己要處理乾淨. 試試看: procedure ShowEmployeeManageForm; begin try frmEmployeeManage:= TfrmEmployeeManage.Create(nil); frmEmployeeManage.ShowModal; FreeAndNil(frmEmployeeManage); except if frmEmployeeManage<>nil then FreeAndNil(frmEmployeeManage); end; end; procedure TfrmEmployeeManage.FormCreate(Sender: TObject); begin DataModule1 := TDataModule1.Create(nil); .. .. .. end; procedure TfrmEmployeeManage.FormClose(Sender: TObject; var Action: TCloseAction); begin DataModule1.SQLConnection1.Connected := False; FreeAndNil(DataModule1); end;
編輯記錄
Mickey 重新編輯於 2007-10-25 09:10:51, 註解 無‧
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
|
wangccw
一般會員 發表:21 回覆:39 積分:17 註冊:2005-01-30 發送簡訊給我 |
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |