请告诉我使用 export 和 stdcall 关键字使用 delphi7 导出 Dll 中的函数的区别
please give me the difference in using export and stdcall keywords for exporting the functions in Dll using delphi7
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代码。即使我给出口它的作品。我可以知道这两个关键字用法之间的区别吗?
export
关键字是 16 位版本遗留下来的。它在 Delphi 的现代版本中被忽略。不要将它与 exports
指令混淆,后者用于指定从库中导出哪些函数,以及您在所提供的代码中正确使用哪些函数。
将 export
与调用约定指令 stdcall
进行比较没有多大意义,因为它们不能直接进行比较。
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代码。即使我给出口它的作品。我可以知道这两个关键字用法之间的区别吗?
export
关键字是 16 位版本遗留下来的。它在 Delphi 的现代版本中被忽略。不要将它与 exports
指令混淆,后者用于指定从库中导出哪些函数,以及您在所提供的代码中正确使用哪些函数。
将 export
与调用约定指令 stdcall
进行比较没有多大意义,因为它们不能直接进行比较。