delphi写DLL函数时,如何终止该函数?(10分)

  • 主题发起人 主题发起人 jscoco
  • 开始时间 开始时间
J

jscoco

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi 写了个比较大小的max(a,b:integer):integer;函数
function max(a,b:integer):integer;
begin
if (a<0) or (b<0) then abort
else
begin
if a>b then result:=a
else result:=b;
end;
我在外部用max(-1,-1)去调用这个DLL函数时,报告Exception Abort 错误,
本人意图是想终止一个DLL函数,而不是退出(exit),因为我在外部调用这个函数后,下面还其他代码,我想直接在DLL里终止,不执行下面的代码。
请教哪位高手有经验,给分。。
 
function max(a,b:integer):integer;
begin
result := 0;
if (a<0) or (b<0) then
begin
//do nothing
end
else
begin
if a>b then result:=a
else result:=b;
end;
end;
 
function max(a,b:integer):integer;
begin
result := 0;
if (a<0) or (b<0) then
begin
showmessage('非法数据');
abort;
end
else
begin
if a>b then result:=a
else result:=b;
end;
end;

调用列程为
procedure TForm1.Button1Click(Sender: TObject);
var temp:integer;
begin
temp:=max(-1,4);
if temp>100 then
showmessage('比较数过大');
end;
这样一来,运行后显示“非法数据“,并报告Exception Abort 错误。
我如果去掉abort,则会显示"非法数据",和”比较数过大“,我是想当输入小于零的数据时,终止DLL,楼上的说法是可以,但是我想知道为什么在DLL里不能使用abort???
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
698
SUNSTONE的Delphi笔记
S
S
回复
0
查看
674
SUNSTONE的Delphi笔记
S
后退
顶部