请使用export和stdcall关键字来区分使用delphi7导出Dll中的函数

时间:2017-02-21 05:10:02

标签: delphi delphi-7

uses
  SysUtils,
  Classes;

{$R *.res}
function add(Value1:integer;value2:integer):integer;stdcall;
begin
  Result:=Value1+value2;
end;

function subtract(Value1:integer;value2:integer):integer;stdcall;
begin
  Result:=Value2-value1;
end;

function multiply(Value1:integer;value2:integer):integer;stdcall;
begin
  Result:=Value1*value2;
end;

function divide(Value1:integer;value2:integer):integer;stdcall;
begin
  Result:=Value2 div value1;
end;

function check(Value1:integer;value2:integer):Boolean;stdcall;
begin
  if(Value2>value1)then
    Result:=True
  else
    Result:=False;
end;

exports add,subtract,multiply,divide,check;

这是我的dll代码。即使我给出口它是有效的。我可以知道这两个关键字的用法之间的区别。

1 个答案:

答案 0 :(得分:5)

export关键字是16位版本的遗产。它在Delphi的现代版本中被忽略了。不要将它与exports指令混淆,后者用于指定从库中导出哪些函数,以及在所提供的代码中正确使用哪些函数。

export与调用约定指令stdcall进行比较没有多大意义,因为它们不能直接比较。