AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dll Problem

Ein Thema von STS301 · begonnen am 11. Jan 2008 · letzter Beitrag vom 11. Jan 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von dor557
dor557

Registriert seit: 23. Okt 2004
Ort: Walldorf
197 Beiträge
 
Delphi 10.1 Berlin Starter
 
#11

Re: dll Problem

  Alt 11. Jan 2008, 16:46
wie sieht denn der Code aus ? so :

Delphi-Quellcode:
  
var x : Integer;

begin
  x := Addiere(12,31);
  Label1.Caption := inttostr(x);
end;
oder wie ???
Sascha Nickel
Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#12

Re: dll Problem

  Alt 11. Jan 2008, 16:51
zur Zeit so

Delphi-Quellcode:
unit Einbinden1;

interface

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

type
  TForm3 = class(TForm)
    Label1: TLabel;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation
type TSummenFunktion = function(zahl1, zahl2: integer): integer; stdcall;

function addieren(zahl1, zahl2: integer): integer;
var SummenFunktion: TSummenFunktion;
    Handle: THandle;
begin
Handle := LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'rechnen.dll'));

if Handle <> 0 then begin
    @SummenFunktion := GetProcAddress(Handle, 'addiere');
    if @SummenFunktion <> nil then begin
      result:=SummenFunktion(zahl1, zahl2);
    end;
FreeLibrary(Handle);

{$R *.dfm}
  end;
end;
end.
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: dll Problem

  Alt 11. Jan 2008, 17:01
Delphi-Quellcode:
unit Einbinden1;

interface

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

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

type TSummenFunktion = function(zahl1, zahl2: integer): integer; stdcall;

function addieren(zahl1, zahl2: integer): integer;
var SummenFunktion: TSummenFunktion;
    Handle: THandle;
begin
  Result := 0;
  Handle := LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'rechnen.dll'));

  if Handle <> 0 then begin
    @SummenFunktion := GetProcAddress(Handle, 'addiere');
    if @SummenFunktion <> nil then begin
      result:=SummenFunktion(zahl1, zahl2);
    end;
    FreeLibrary(Handle);
  end;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
  Label1.Caption := inttostr(addieren(15,2));
end;

end.
Getippt und nicht getestet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#14

Re: dll Problem

  Alt 11. Jan 2008, 17:04
er zeigt mir 0 an??, aber sonst funktioniert es
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: dll Problem

  Alt 11. Jan 2008, 17:08
Es funktioniert nicht. Wahrscheinlich, weil es keine DLL namens "rechnen.dll" gibt.

Edit: [etwas fachübergreifendes] hier wäre wahrscheinlich eine Exception ganz angebracht
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von dor557
dor557

Registriert seit: 23. Okt 2004
Ort: Walldorf
197 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

Re: dll Problem

  Alt 11. Jan 2008, 17:09
Du hast warscheinlich vergessen eine Funktion zu erstellen die das auch aufruft !!

mach mal Folgendes :

erstelle auf dem Formular einen Button und Klicke den doppelt an dann hast du normal folgenden Code :

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin

end;
und da fügst du dann folgendes ein :

  Label1.Caption := inttostr(addieren(1,2)); dann müsste das Ergebnis so aussehen :

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
   Label1.Caption := inttostr(addieren(1,2));
end;
dann starte das Programm und kliche auf den button und dann wirst du sehen das das Label eine 3 anzeigt.

Gruss Sascha

(Habe es bei mir getestet geht !)

Was du auch beachten solltest (Habe ich eben getestet) das die dll auch im gleichen verzeichnis ist, wie das Programm. und das der Name stimmt. wen ich die dll lösche bekomme ich auch eine 0 !

Gruss Sascha
Sascha Nickel
Man muss die Dinge nehmen wie sie kommen, man kann aber auch dafür sorgen das die dinge so kommen wie man sie nehmen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: dll Problem

  Alt 11. Jan 2008, 17:10
Du musst auch auf Groß- und Kleinschreibung achten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#18

Re: dll Problem

  Alt 11. Jan 2008, 17:14


ich habe vorhin den Code aus dem Tutorial kopiert, da hies die dll Datei natürlich nicht so wie meins

@sascha, danke für die ausführliche Erklährung



jetzt funktioniert es danke an alle

//edit: ich sollte doch schon ins Bett gehen
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#19

Re: dll Problem

  Alt 11. Jan 2008, 17:16
Hi!

Zuersteinmal hierzu:
Zitat:
zwischen den einzellnen Delphis gibt es leider immer wieder so kleine Bugs, aber danke an euch
Sicher, dass das ein Delphi-Bug ist?

Zum Rest.. Dein Quelltext gibt doch gar keinen Aufschluss darüber, was wo mit dem Ergebnis gemacht wird. Wenn Form3 erzeugt wurde und ein Label hat, sollte die Ausgabe funktionieren. Schöner wäre es auch, wenn das Addieren eine Funktion der Klasse TForm3 wäre.. aber das nur nebenbei.

Nachtrag: Mieser roter Kasten.. ich poste trotzdem!
Nachtrag2: Beim roten Kasten war deine Antwort noch nicht drin... naja, ignoriert mich .. ich lasse mir wohl immer viel Zeit beim schreiben und bearbeiten...
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#20

Re: dll Problem

  Alt 11. Jan 2008, 17:24
naja, kommt darauf an wie schwerwiegend man einen Bug aufnimmt, es sind eher kleine Codeunterschiede zwischen den einzellnen delphiversionen.

ja, die roten Kasten, da muss man einfach schneller schreiben lernen
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz