AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DLL als Erweiterung für mein Programm
Thema durchsuchen
Ansicht
Themen-Optionen

DLL als Erweiterung für mein Programm

Ein Thema von F.W. · begonnen am 25. Jul 2004 · letzter Beitrag vom 27. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

DLL als Erweiterung für mein Programm

  Alt 25. Jul 2004, 22:28
Hallo wiedermal! (Ich weiß nicht, wo ich den Thread hinschreiben soll, ich hoffe HIER ist richtig)

Ich hab mir heute mal die Benutzung von DLLs reingezogen. Nun ist es ja so, dass das Programm, welches irgendwelche Funktionen aus DLLs nimmt, Nicht starten kann, wenn es die DLL nicht findet.

Ich würds aber gern so machen, dass wenn die DLL 'xyz.dll' im Verzeichnis liegt, dann soll ein zusätzlicher Button angezeigt werden, mit dem man dann das Formular aus der DLL aufrufen kann, oder irgendeine andere Zusatzfunktion, quasi a Plugin?!

Bsp:
Ich hab ein Programm, mit dem man Werte errechnen kann und wer besonders nett fragt, bekommt die Zusatzfunktion (die DLL) und kann sich mit der DLL ein Diagramm von den Werten anzeigen lassen (was die DLL beinhalten würde).

Aber wenn das Prog schon VOR dem starten streikt, weil die DLL nicht da ist, die's evtl. benutzen soll, könnt ich das schlecht als Zusatzfunktion einbauen.

Bei Counter-Strike ist es ja auch so, man kann sich verschiedene Mods holen, die DLLs von denen einbinden und schon hat man schöne Zusatzfunktionen!

Danke schonmal!
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: DLL als Erweiterung für mein Programm

  Alt 25. Jul 2004, 22:33
du kannst die DLL statisch und dynamisch einbinden

dynamisch ist späteres "hinzuladen" bei schon laufendem programm -> das ist das was du brauchst
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Manzoni
Manzoni

Registriert seit: 15. Feb 2004
Ort: Berlin
120 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: DLL als Erweiterung für mein Programm

  Alt 25. Jul 2004, 22:36
Schau mal hier. Hoffe dir hilft das Tutorial weiter.
Bob
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#4

Re: DLL als Erweiterung für mein Programm

  Alt 25. Jul 2004, 22:40
Mit den Infos werd ich sicher was anfangen können!! Ich schaus mir aber erst morgen an (geh jetzt ertsmal ins Bett).

-> Wenns Probleme oder Fragen gibt, meld ich mich nochmal!

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 11:48
Die Tutorials von Delphhi-Source und Delphi-Treff sind älter und unterscheiden sich (zumindest beim statischen einladen von DLLs) zu der Methode, die ich mit Delphi 6 gelernt habe. Sollte ich die jetzt trotzdem verwenden oder geht das in D6 anders?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 11:50
Das mit dem Button könntest du so lösen:

Delphi-Quellcode:
if FileExists(<PfadzurDLL>) then
  Button.Visible := true
else
  Button.Visible := false;
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#7

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 12:18
Das ist ja klar. Aber um das ganze so zu gestalten muss die DLL dynamisch eingeladen werden -> Wie macht man das. Ich hab gelesen, dass man sich selbst um die Verwaltung (Laden, rausschmeißen ...) kümmern muss, nur wie genau ist jetzt das Prob. Wie gesagt, bin mir halt nicht sicher ob es in D6 genauso geht wie in den Tuts, will jetzt nichts falsches lernen.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#8

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 12:20
Natürlich geht das genauso, die Tuts sind glaub ich sogar "nur" mit Delphi 5 geschrieben.
Warum soolte es denn nicht funktionieren?

Probieren geht über studieren
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#9

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 12:56
Ja eben, alle sind mit D5 geschrieben, aber bsw. wird in die Projektdatei der Statischen DLLs dort nochmal die ganze Funktion reingeschrieben
Delphi-Source:
Code:
library Project1;

uses
  SysUtils,
  Classes;

{$R *.RES}

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

exports
  addiere;

begin

end.
Ich hab's so gelernt:
Code:
library Project1;

uses
  SysUtils,
  Classes;

{$R *.RES}

exports
 function addiere name 'addiere';

begin

end.
Und da ist je schon ein kleiner Unterschied
  Mit Zitat antworten Zitat
Benutzerbild von Spezi1980
Spezi1980

Registriert seit: 11. Aug 2003
Ort: Dresden OT Cossebaude
71 Beiträge
 
Delphi 2005 Personal
 
#10

Re: DLL als Erweiterung für mein Programm

  Alt 26. Jul 2004, 14:19
Wie es so schön heist "viele Wege führen nach Rom".
Es sind beide möglichkeiten richtig.

Delphi-Quellcode:
library Project1;

uses
  SysUtils,
  Classes;

{$R *.RES} 

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

exports
  addiere;
   {verweist auf das addiere oben, was genauso exportiert wird wie es oben dasteht
    um das so zu verwenden muß die Funktion vor dem export schon mal vorkommen,
    damit der compiler weis wie es richtig ist. }


  function addiere name 'add';
   {damit kann ich der Funktion einen anderen namen geben, quasi ist der name der
    funktion in der Unit addiere und wenn du die unit später von deinem programm
    aus der dll aufrufst dann heist sie add}

  

begin

end.
Robert
Codito, ergo sum.
>>I code, therefore I am<<
  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 11:34 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