DLL寫法問題 |
答題得分者是:h@visli
|
ken77
一般會員 ![]() ![]() 發表:4 回覆:4 積分:1 註冊:2003-02-28 發送簡訊給我 |
各位大大:
我是剛學寫DLL的人,我在程式中寫了一個Function,經測試是沒問題的,我把那個Function移到DLL中,就會出現'Invalid Pointer Operation'的錯誤訊息,寫DLL時要注意那些事情,麻煩各位大大幫忙一下,感恩。 此段為呼叫DLL程式 [code delphi] var Form1: TForm1; function FillZero(Len : integer;var Str : string) : Integer; far ; external'd:\dll\projPubDll.Dll' Name 'FillZero'; //function FillZero(Len : integer;var Str : String) : Integer; implementation {$R *.dfm} {function FillZero(Len : integer;var Str : String) : Integer; var i,FLen : Integer; begin result := -1; FLen := Length(Str); for i := Flen to Len-1 do Str := '0' Str ; result := 0; end; } procedure TForm1.Button1Click(Sender: TObject); var S : String; i : Integer; begin try strtoint(edit1.Text); S := (Edit1.Text); except exit; end; i := FillZero(5,S); Edit1.Text := S; end; [/code] 此段為DLL內容 [code delphi] function FillZero(Len : Integer;var Str : String) : Integer; export; implementation function FillZero(Len : integer;var Str : String) : Integer; var i,FLen : Integer; begin result := -1; FLen := Length(Str); for i := Flen to Len-1 do Str := '0' Str ; result := 0; end; [/code]
------
Ken Hsueh |
h@visli
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
請在你的Host Project以及Dll Project的首引用單元中都添加 ShareMM 引用。
如: [code delphi] library projPubDll; uses ShareMem, SysUtils, Classes; //--------------------- program Project1; uses ShareMem, Forms, Unit1 in 'Unit1.pas' {Form1}; [/code]
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
ken77
一般會員 ![]() ![]() 發表:4 回覆:4 積分:1 註冊:2003-02-28 發送簡訊給我 |
|
ken77
一般會員 ![]() ![]() 發表:4 回覆:4 積分:1 註冊:2003-02-28 發送簡訊給我 |
===================引 用 ken77 文 章=================== 非常謝謝您的幫忙,我自己犯了一個錯誤,沒把ShareMEM放在一第個位置,看了Help以後才知道,在次感謝您。 ---------------------------------------------------------------------------------------------------------------------------------------------- 感謝您的回覆,我按照您的說明去作,在程式執行時已無問題,可是程式Close是仍會出現相同的錯誤訊息。
------
Ken Hsueh |
mp394681143
一般會員 ![]() ![]() 發表:64 回覆:40 積分:20 註冊:2009-10-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |