關於 建立DLL檔與使用DLL檔的程式範例 的問題 |
缺席
|
degr
一般會員 發表:22 回覆:36 積分:21 註冊:2002-03-25 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
出現這種異常的原因通常是DLL單元中String類型的參數引起的,在每個DLL單元都會自動加進一段注釋,就是說明這個問題的,解決方法有二:
1,更改參數的String類型為PChar或者ShortString;
2,在DLL單元Uses部分的最前面加上Uses ShareMem,並且在應用程式的DPR單元也是最前面的Uses部分加上Uses ShareMem即可(需要注意的是你的程式在沒有安裝Delphi環境下運行需要一起分發Borlndmm.dll文件,該文件在$Delphi\Bin文件夾下)
|
degr
一般會員 發表:22 回覆:36 積分:21 註冊:2002-03-25 發送簡訊給我 |
主程式 function KT(Title:string):string; far; external 'DllLib.DLL'; procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:=KT('s');
end; ************************************************************ ****以下為 DllLib.DLL 部分***************** library DllLib; uses
ShareMem,
UConfirm in 'UConfirm.pas' {FormConfirm},
UMessage in 'UMessage.pas' {FormMessage}; exports
KTConfirm,KTMessage,KTWarnMessage,KTStopMessage,kt; begin
end *********************************************** unit UConfirm;
.....
.....
function KT(Title:string):string;export; //輸出函數
..
..
function KT(Title:string):string;
begin
result:=formatdatetime('yyyymmddhhnnss',now);
end; *************** POST 程式如上******************* 另外 Rain 前輩 我也有試過你的方式 將欲傳遞參數string 改成 pchar 或是 ShortString
都不行說..一樣是同樣的錯誤訊息,
也有uses ShareMem 一樣不行... 怎會這樣呢....
|
degr
一般會員 發表:22 回覆:36 積分:21 註冊:2002-03-25 發送簡訊給我 |
Rain 前輩 另一個問題想請問你說,,
呼叫 dll 時候傳回會有錯誤訊息,是沒錯
可是當我關閉主程式時,卻出現另一種錯誤訊息
錯誤訊息如下:: 應用程式發生例外 不明的軟體例外錯誤(0x0eedfade)於位置0x77d6f142 及 Runtimer error 217 at 00416BE8 這兩種訊息 不過我發現主程式有uses ShareMem 時
傳回值沒有問題,可是關閉主程式卻是發生上述錯誤訊息 如果沒uses ShareMem 時
傳回值有問題,是這 invalid pointer operation 錯誤訊息
可是關閉主程式卻是沒任何述錯誤訊息.. 真的好怪呢.... PS :
我只是下載前輩所公佈的程式碼去修改,增加function而已..並沒有大量修改內容...
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 主程式 function KT(Title:string):string; far; external 'DllLib.DLL'; procedure TForm1.Button2Click(Sender: TObject); begin edit1.Text:=KT('s'); end;function KT(Title:string):string; far; external 'DllLib.DLL'; function KT(Title:string):string; external 'DllLib.DLL'; 改成這樣試試看! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
degr
一般會員 發表:22 回覆:36 積分:21 註冊:2002-03-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |