Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tutorial für die Einbindung von bpl (https://www.delphipraxis.net/178241-tutorial-fuer-die-einbindung-von-bpl.html)

Helmi 26. Dez 2013 09:14

Tutorial für die Einbindung von bpl
 
Hallo,

hat jemand ein Tutorials, wie man eine bpl dynamisch ins Programm einbindet?

Ich möchte kein Package erzeugen, sondern einfach eine bpl erzeugen und diese in einem anderen Programm einbinden.

Ich habe schon im Forum gesucht, auch einen Thread dazu gefunden, aber die darin enthaltenen Links führen alle ins Leere.

Perlsau 26. Dez 2013 09:35

AW: Tutorial für die Einbindung von bpl
 
Vielleicht ist da ja was dabei:

Delphi-Treff: Delphi-Treff Packages
Emba-DocWiki: Dynamisch ladbare Bibliotheken schreiben
Emba-DocWiki: Bibliotheken und Packages (Delphi)
Emba-DocWiki: Packages (Delphi)
Entwickler-Ecke: Verständnisfrage zu BPL

Bernhard Geyer 26. Dez 2013 09:48

AW: Tutorial für die Einbindung von bpl
 
Gugst du hier: http://delphi.cz/img/packages/advanced.pdf

Helmi 26. Dez 2013 10:17

AW: Tutorial für die Einbindung von bpl
 
Danke für die Links!

Helfen mir schon mal weiter.

Nur eine Frage hab ich noch:
Entweder ich stell mich grad zu doof an oder ich find es einfach nicht:
Wie kann ich eine bpl erstellen?

Ich hab als neues Projekt ein Package erstellt, eine Unit hinzugefügt, die als Test folgenden Code enthält:
Delphi-Quellcode:
library MinMax;
function Min(X, Y: Integer): Integer; stdcall;
begin
  if X < Y then Min := X else Min := Y;
end;
function Max(X, Y: Integer): Integer; stdcall;
begin
  if X > Y then Max := X else Max := Y;
end;
exports
  Min,
  Max;
  begin
 end.
(aus http://docwiki.embarcadero.com/RADSt...eken_schreiben)

Beim Compilieren erhalte ich dann den Fehler:
Zitat:

[DCC Fehler] Unit1.pas(1): E2029 'UNIT' erwartet, aber 'LIBRARY' gefunden

Perlsau 26. Dez 2013 11:03

AW: Tutorial für die Einbindung von bpl
 
Du hast ja auch die Anleitung für DLLs genommen! DLL heißt Dynamic Link Library, wobei Library mit Bibliothek übersetzt wird. Wenn du keine DLL entwerfen willst, darfst du auch nicht Library schreiben ... die Fehlermeldung sagt dir doch schon alles: ersetze Library durch Unit.

Helmi 26. Dez 2013 11:22

AW: Tutorial für die Einbindung von bpl
 
Zitat:

Zitat von Perlsau (Beitrag 1241079)
Du hast ja auch die Anleitung für DLLs genommen! DLL heißt Dynamic Link Library, wobei Library mit Bibliothek übersetzt wird. Wenn du keine DLL entwerfen willst, darfst du auch nicht Library schreiben ... die Fehlermeldung sagt dir doch schon alles: ersetze Library durch Unit.

Ja, das leuchtet ein und funktioniert auch

aber wie komm ich jetzt zu der BPL?

Irgendwo hab ich noch nen Denkfehler

Perlsau 26. Dez 2013 11:26

AW: Tutorial für die Einbindung von bpl
 
Wie wär's mit Datei -> Neu -> Package - Delphi :?:
Hast du bereits eine Unit erstellt, fügst du die einfach deinem neuen Projekt hinzu, wie bei einer Delphi-Anwendung auch.

Uwe Raabe 26. Dez 2013 11:34

AW: Tutorial für die Einbindung von bpl
 
Ein Package ist eben immer ein Package und hat die Endung BPL. Ob das Package nun statisch oder dynamisch eingebunden wird, hat auf die Erstellung keinen Einfluss. Das entscheidet einzig das Programm, das die BPL verwendet.

Helmi 26. Dez 2013 12:01

AW: Tutorial für die Einbindung von bpl
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Uwe Raabe (Beitrag 1241082)
Ein Package ist eben immer ein Package und hat die Endung BPL.

Das ist mein Problem - ich bekomme keine Datei mit der Endung BPL.

Ich seh zwar in der Projektverwaltung das Package als "Package1.bpl", compilier ich es wird aber keine bpl erzeugt.

Im Anhang hab ich mal den Inhalt des Ordners als Bild dargestellt
Im Ordner sind nur die dcu´s

Perlsau 26. Dez 2013 12:05

AW: Tutorial für die Einbindung von bpl
 
Hast du denn auch in deinem Ausgabe-Ordner nachgeschaut? In den Projektoptionen stellst du unter dem Punkt Delphi-Compiler ein, wo Delphi die erzeugten Dateien ablegen soll. Offenbar ist bei dir nicht der Projektordner eingetragen.

Erstelle dir doch einfach immer dieselbe Datei-Struktur für deine Projekte, dann kannst du die einmal eingetragene Konfiguration bei allen Projekten übernehmen.

Helmi 26. Dez 2013 12:22

AW: Tutorial für die Einbindung von bpl
 
Zitat:

Zitat von Perlsau (Beitrag 1241088)
Hast du denn auch in deinem Ausgabe-Ordner nachgeschaut? In den Projektoptionen stellst du unter dem Punkt Delphi-Compiler ein, wo Delphi die erzeugten Dateien ablegen soll. Offenbar ist bei dir nicht der Projektordner eingetragen.

Genau das wars, Danke!

Im "Package-Ausgabeverzeichnis" war nichts eingetragen. Wenn ich dort einen Ordner eintrage, dann wird auch die bpl erstellt.

Bei "Ausgabeverzeichnis" und "Ausgabeverzeichnis für Units" wird automatisch ".\$(Platform)\$(Config)" eingetragen, bei "Package-Ausgabeverzeichnis" ist standardgemäß nichts eingetragen.

Zitat:

Zitat von Perlsau (Beitrag 1241088)
Erstelle dir doch einfach immer dieselbe Datei-Struktur für deine Projekte, dann kannst du die einmal eingetragene Konfiguration bei allen Projekten übernehmen.

Für die normalen Projekte hab ich eine eigene Ordner-Struktur für "Ausgabeverzeichnis" aber nicht für Packages, da ich bislang damit nicht gearbeitet hab.

Aber jetzt mal schnell was offtopices:
Kann man im Delphi einstellen, dass automatisch beim Erstellen eines neuen Projektes eine bestimmte Ordnerstruktur angelegt wird?

Perlsau 26. Dez 2013 12:35

AW: Tutorial für die Einbindung von bpl
 
Zitat:

Zitat von Helmi (Beitrag 1241091)
Zitat:

Zitat von Perlsau (Beitrag 1241088)
Hast du denn auch in deinem Ausgabe-Ordner nachgeschaut? In den Projektoptionen stellst du unter dem Punkt Delphi-Compiler ein, wo Delphi die erzeugten Dateien ablegen soll. Offenbar ist bei dir nicht der Projektordner eingetragen.

Genau das wars, Danke!

Freut mich, daß ich helfen konnte :-D

Zitat:

Zitat von Helmi (Beitrag 1241091)
Im "Package-Ausgabeverzeichnis" war nichts eingetragen. Wenn ich dort einen Ordner eintrage, dann wird auch die bpl erstellt.
Bei "Ausgabeverzeichnis" und "Ausgabeverzeichnis für Units" wird automatisch ".\$(Platform)\$(Config)" eingetragen, bei "Package-Ausgabeverzeichnis" ist standardgemäß nichts eingetragen.

Genau dafür gibt's diese Optionen ja auch :idea:

Zitat:

Zitat von Helmi (Beitrag 1241091)
Zitat:

Zitat von Perlsau (Beitrag 1241088)
Erstelle dir doch einfach immer dieselbe Datei-Struktur für deine Projekte, dann kannst du die einmal eingetragene Konfiguration bei allen Projekten übernehmen.

Für die normalen Projekte hab ich eine eigene Ordner-Struktur für "Ausgabeverzeichnis" aber nicht für Packages, da ich bislang damit nicht gearbeitet hab.

Meine Ordnerstruktur für Delphi2009 sieht so aus:
Code:
Debug
  BIN
  DCP
  DCU
Grafik
Release
  BIN
  DCP
  DCU
Source
Temp
Eingetragen wird dann so, und zwar erstmal für alle Konfigurationen:
Ausgabeverzeichnis ..\Debug\BIN\
Ausgabeverzeichnis für Units ..\Debug\DCU\
DCP-Ausgabeverzeichnis ..\Debug\DCP\

Für Release-Konfiguration entsprechend: ..\Release\BIN\ usw.

Zitat:

Zitat von Helmi (Beitrag 1241091)
Aber jetzt mal schnell was offtopices: Kann man im Delphi einstellen, dass automatisch beim Erstellen eines neuen Projektes eine bestimmte Ordnerstruktur angelegt wird?

In Delphi2009 gibts dafür links unten in den Optionen eine Checkbox, bei den XE-Versionen glaub ich nicht mehr, da mußt du aber jemand anderen fragen, ich hab nur 2009.

Uwe Raabe 26. Dez 2013 12:55

AW: Tutorial für die Einbindung von bpl
 
Zitat:

Zitat von Helmi (Beitrag 1241091)
Im "Package-Ausgabeverzeichnis" war nichts eingetragen. Wenn ich dort einen Ordner eintrage, dann wird auch die bpl erstellt.

Wenn dort nichts steht, wird die Einstellung aus den IDE-Optionen genommen. Das ist sowas wie $(BDSCOMMONDIR)\Bpl. Damit landen die BPLs dann automatisch in einem Verzeichnis, das im Suchpfad der IDE liegt.

Helmi 26. Dez 2013 13:02

AW: Tutorial für die Einbindung von bpl
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1241094)
Zitat:

Zitat von Helmi (Beitrag 1241091)
Im "Package-Ausgabeverzeichnis" war nichts eingetragen. Wenn ich dort einen Ordner eintrage, dann wird auch die bpl erstellt.

Wenn dort nichts steht, wird die Einstellung aus den IDE-Optionen genommen. Das ist sowas wie $(BDSCOMMONDIR)\Bpl. Damit landen die BPLs dann automatisch in einem Verzeichnis, das im Suchpfad der IDE liegt.

tatsächlich, da lag´s :-)

Danke! - gut zu wissen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz