線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2512
推到 Plurk!
推到 Facebook!

DLL寫法問題

答題得分者是:h@visli
ken77
一般會員


發表:4
回覆:4
積分:1
註冊:2003-02-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-09-30 09:49:08 IP:211.20.xxx.xxx 訂閱
各位大大:

我是剛學寫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
資深會員


發表:101
回覆:417
積分:418
註冊:2004-02-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-09-30 11:48:25 IP:219.133.xxx.xxx 未訂閱
請在你的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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-09-30 12:00:26 IP:211.20.xxx.xxx 訂閱
感謝您的回覆,我按照您的說明去作,在程式執行時已無問題,可是程式Close是仍會出現相同的錯誤訊息。
------
Ken Hsueh
ken77
一般會員


發表:4
回覆:4
積分:1
註冊:2003-02-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-09-30 12:07:54 IP:211.20.xxx.xxx 訂閱

===================引 用 ken77 文 章===================
非常謝謝您的幫忙,我自己犯了一個錯誤,沒把ShareMEM放在一第個位置,看了Help以後才知道,在次感謝您。
----------------------------------------------------------------------------------------------------------------------------------------------
感謝您的回覆,我按照您的說明去作,在程式執行時已無問題,可是程式Close是仍會出現相同的錯誤訊息。
------
Ken Hsueh
mp394681143
一般會員


發表:64
回覆:40
積分:20
註冊:2009-10-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-10-16 23:09:09 IP:61.136.xxx.xxx 訂閱
 前段時間,我也犯過這樣的錯誤,謝謝樓上的樓上指點!
系統時間:2017-12-13 21:14:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!