AGB  ·  Datenschutz  ·  Impressum  







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

DLLs

Ein Thema von ByStones2 · begonnen am 7. Jun 2006 · letzter Beitrag vom 7. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#1

DLLs

  Alt 7. Jun 2006, 11:53
Hi,

ich will mich gerade auf das Thema DLL stürzen, doch es will nicht so wie ich will.
Darum frage ich euch, hat jemand ein Programm wo eine DLL eingebunden wird.
Man saoll nur eine showmessage ausgeben, doch die function/procedure steht in der DLL.
Falls ihr soetwas habt wäre ich echt dankbar wenn ihr das hochladen könntet.
Ich hab mir schon das Tutorial von Assarbad durchgelesen, doch ich versteh nur Bahnhof !!!

ByStones
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: DLLs

  Alt 7. Jun 2006, 12:10
Schau dir mal das Tutorial bei dsdt an.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: DLLs

  Alt 7. Jun 2006, 12:24
Zitat von Bernhard Geyer:
Schau dir mal das Tutorial bei dsdt an.
ich habs mir mal durchgelesen und hab auch aales gemacht:
Delphi-Quellcode:
[Error] Unit1.pas(13): E2065 Unsatisfied forward or external declaration: 'TForm1.addiere'
[Fatal Error] mathe.dpr(5): F2063 Could not compile used unit 'Unit1.pas'
Mein Code:
Delphi-Quellcode:
unit Unit1;

interface


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

type
  TForm1 = class(TForm)
    Button1: TButton;
    function addiere(zahl1, zahl2: integer): integer; stdcall;
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

function addiere(zahl1, zahl2: integer): integer; stdcall;
external 'rechnen.dll';

end.
Mein DLL:
Delphi-Quellcode:
library rechnen;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }


uses
  SysUtils,
  Classes;

{$R *.res}


function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result := zahl1+zahl2;
end;

exports
  addiere;

begin

end.
ich hab keine Ahnung wo der Fehler liegt !!!
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DLLs

  Alt 7. Jun 2006, 12:27
Oder hier: http://www.michael-puff.de/dirindex....orte/Assarbad/ Ist eventuell etwas ausführlicher.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#5

Re: DLLs

  Alt 7. Jun 2006, 12:29
nimm mal die Funktion aus dem "TForm1" - Abschnitt heraus und setze das hier:

Delphi-Quellcode:
function addiere(zahl1, zahl2: integer): integer; stdcall;
external 'rechnen.dll';
vor den implementation - Abschnitt. Geht's dann?
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: DLLs

  Alt 7. Jun 2006, 12:29
Zitat von Luckie:
Oder hier: http://www.michael-puff.de/dirindex....orte/Assarbad/ Ist eventuell etwas ausführlicher.
hab ich schon gelesen !!!
Jetzt geht's !!! Es geht !!!!


Danke Daniel G !!!!!!!!!!!!
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#7

Re: DLLs

  Alt 7. Jun 2006, 12:30
Zitat von ByStones2:
Unsatisfied forward or external declaration: 'TForm1.addiere'
Entferne die Funktion 'addiere' aus dem Interface von TForm1.
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: DLLs

  Alt 7. Jun 2006, 12:36
Es wäre schon wenn ihr mir noch sagen könntet wie man das
ganze mit einer procedure macht !!!
Danke schon mal wieder im vorraus !!!
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#9

Re: DLLs

  Alt 7. Jun 2006, 12:43
Zitat von ByStones2:
Es wäre schon wenn ihr mir noch sagen könntet wie man das
ganze mit einer procedure macht
Eine Prozedur ist nichts anderes als eine Funktion ohne Rückgabewert.
Insofern stellt sich (zumindest mir) die Frage: was willst du genau machen?
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: DLLs

  Alt 7. Jun 2006, 12:45
Zitat von NicoDE:
Zitat von ByStones2:
Es wäre schon wenn ihr mir noch sagen könntet wie man das
ganze mit einer procedure macht
Eine Prozedur ist nichts anderes als eine Funktion ohne Rückgabewert.
Insofern stellt sich (zumindest mir) die Frage: was willst du genau machen?
Delphi-Quellcode:
procedure show; stdcall;
begin
showmessage('hi');
end;
Delphi-Quellcode:
procedure show; stdcall;
external 'rechnen.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
show;
Form1.Caption := inttostr(addiere(5,5));
end;
da pssiert einfach nichts, keine Fehlermeldung, nichts
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:01 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