Hallo,
ich habe hier ein merkwürdiges Phänomen:
Eine
DLL die ich erstellt habe, addiert 2 Integer:
Delphi-Quellcode:
library Meine_DLL;
uses
System.SysUtils,
System.Classes;
{$R *.res}
function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
result := zahl1+zahl2;
end;
exports
addiere;
begin
end.
Ein Programm soll die Funktion verwenden:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
function addiere(zahl1, zahl2: integer): integer;
stdcall;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function addiere(zahl1, zahl2: integer): integer;
stdcall;
external '
Meine_DLL.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
e: integer;
a, b: integer;
begin
a := 13;
b := 36;
e := addiere(a, b);
showmessage(e.ToString);
end;
end.
In der
DLL kommt zahl1 = 13 und zahl2 = 53253984 an!
Hat jemand eine Idee?
Danke
Ciao
Stefan