Thema: Delphi DLL Programmierung

Einzelnen Beitrag anzeigen

DIET3RIX

Registriert seit: 21. Feb 2006
Ort: Bonn
78 Beiträge
 
Delphi 2007 Professional
 
#1

DLL Programmierung

  Alt 8. Jun 2007, 13:39
Hey Leute,

ich hab jetzt ein bissle Zeit und hab beschlossen mich ma wieder mit Delphi zu beschäftigen.
Buch aufgeschlagen -> Dynamic Link Libraries, kligt ganz gut.

Eine DLL geschrieben und erzeugt (TangensDLL.dll):
Delphi-Quellcode:
library TangensDLL;

uses
  SysUtils,
  Classes;

function Tangens(Wert:double): Double; stdcall;
begin
  Result := sin(Wert)/cos(Wert);
end;

exports
  Tangens;

begin
end.
So, danach kommt statisches Importieren.
Delphi-Quellcode:
unit TangensEXE;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
              
function Tangens(Wert: double): double; external 'TangensDLL.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  vResult: double;
begin
  try
    vResult := Tangens(45);
  except
    ShowMessage('Die Funktion Tangens existiert nicht.');
  end;

  Edit1.Text := FloatToStr(vResult);
end;

end.

Wenn ich jetzt den Button drücke, dann bekomme ich "1,61977519054386" raus.
Aber Tangens von 45° ist doch 1.

Im Buch steht, dass "function Tangens(Wert: double): double; external 'TangensDLL.dll';" im interface-Abschnitt stehen muss, aber wo endet interface und wenn ich die Zeile direkt unter interface tippe, dann bekomme ich immer jede Menge Fehlermeldungen.

THX voraus
Dieter
  Mit Zitat antworten Zitat