Dll內 Overload的問題 |
答題得分者是:tonytop
|
wscken
初階會員 發表:28 回覆:75 積分:45 註冊:2003-08-05 發送簡訊給我 |
|
tonytop
中階會員 發表:6 回覆:114 積分:89 註冊:2003-12-04 發送簡訊給我 |
|
wscken
初階會員 發表:28 回覆:75 積分:45 註冊:2003-08-05 發送簡訊給我 |
tonytop大大,大概誤會我的意思了,我不是要全部執行,只是要執行符合的那個,這些在普通的DELPHI內都會正確,可是寫在DLL裡面就會呼叫錯誤,我貼一下測試的內容好了: DLL裡面的procedure:
procedure test();overload;
begin
ShowMessage('test 1') ;
end ; procedure test(Str:String);overload;
begin
ShowMessage('test 2') ;
end ; procedure test(Str,Str1:String);overload;
begin
ShowMessage('test 3') ;
end ; procedure test(Str,Str1,Str2:String);overload;
begin
ShowMessage('test 4') ;
end ; procedure test(Str,Str1,Str2,Str3:String);overload;
begin
ShowMessage('test 5') ;
end ; 當我測試呼叫時,
test() ;
test('123') ;
test('123','456') ;
test('123','456','') ;
test('123','456','','') ; 永遠只會出現
ShowMessage('test 5') ; 所以我才會說是否寫在DLL中會有不同情形發生...
|
tonytop
中階會員 發表:6 回覆:114 積分:89 註冊:2003-12-04 發送簡訊給我 |
喔!原來如此,下次麻煩敘述清楚一點啦!
託您之福,這個問題我好像很久前遇過,那時用unit來解決,
後來較少用overload就不了了之,這次我找help裡終於多學會一招,用在
dll裡的overload,謝啦!
//DLL裡的宣告後面加name exports test() name 'test1', test(Str: string) name 'test2', test(Str, Str1: string) name 'test3', test(Str, Str1, Str2: string) name 'test4', test(Str, Str1, Str2, Str3: string) name 'test5'; //程式宣告及呼叫部份 var Form1: TForm1; const sDll = 'D:\Try\@Ktop\_DLL\OrverLoad\OL.Dll'; procedure test(); external sDll name 'test1'; overload; procedure test(Str: string); external sDll name 'test2'; overload; procedure test(Str, Str1: string); external sDll name 'test3'; overload; procedure test(Str, Str1, Str2: string); external sDll name 'test4'; overload; procedure test(Str, Str1, Str2, Str3: string); external sDll name 'test5'; overload; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin test(); test('123'); test('123', '456'); test('123', '456', ''); test('123', '456', '', ''); end;我正確的mail:h832214@hotmail.com |
wscken
初階會員 發表:28 回覆:75 積分:45 註冊:2003-08-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |