Announcement

Collapse
No announcement yet.

keine statischen Bibliotheken in Delphi ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • keine statischen Bibliotheken in Delphi ?

    Leider vermisse ich die Möglichkeit, Projekte einzurichten, die eine statische Bibliothek betreffen, was in C++ möglich ist. Geht das grundsätzlich nicht? Was ersetzt unter Delphi dieses Konzept?

  • #2
    Ich denke Packages kommt an die statischen Bibliotheken ran

    Comment


    • #3
      Leider habe ich die Erfahrung gemacht, dass Packages die IDE verändern. Irgendwann war die IDE nicht mehr so zu benutzen wie zuvor. Danach musste ich mir den ganzen Builder deinstallieren, wieder neu installieren und bei Borland telefonisch auch noch meine Registrierung erneuern. Wie kann ich also vermeiden, dass Packages die IDE verändern, wenn es schon bedauerlicherweise keine statischen Bibliotheken gibt

      Comment


      • #4
        Meinst du mit statischen Bibliotheken dlls. Diese kannst du natürlich einbinden.
        Packages an sich verändern eigentlich die IDE nicht. Wenn du sie natürlich installierst werden sie in der IDE registriert

        Comment


        • #5
          DLL = dynamic link library, die meine ich also nicht. Sondern ich spreche von *.LIB Dateien, static link libraries. Und die möchte ich nicht nur einbinden, sondern zuerst einmal erzeugen

          Comment


          • #6
            Hi,
            ich denke das erreichst Du, indem Du Deine Funktionen in eine *.pas speicherst. Diese legst du im Suchpfad von Delphi ab. In deinem Projekt gibst Du in der Uses Klausel den *.pas Namen an. Dadurch werden die Routinen included.

            cu Michae

            Comment


            • #7
              Dann würde der Quelltext ja nochmals übersetzt werden müssen. Ich wollte aber ein linkbares Objekt-Modul erzeugen vom Typ *.LIB, also eine statische Bibliothek, so wie es unter C++ und vielen anderen Sprachen möglich ist. Ich möchte eben nicht unnötigerweise dieselbe Quellcode-Datei in diverse Unterprojekte einbinden und jeweils neu übersetzen, sondern dort stets eine bereits übersetzte Linkbibliothek heranziehen. Die möchte ich aber zuvor zuerst in einem entsprechenden Teilprojekt erzeugen. Wie das möglich wäre, das ist eben meine Frage

              Comment


              • #8
                Delphi legt von jeder pas eine compilierte dcu an. Und wenn die pas nicht geändert wurde, dann wird auch keine neue dcu erzeugt, sondern die vorhandene verwendet. Möchte man das die dcu neu erzeugt werden, dann wählt man nicht "Projekt compilieren", sondern "Projekt erzeugen"

                Comment


                • #9
                  Danke für eure Mühe, aber wir reden aneinander vorbei. Eine Library kann auch ohne Source-Code verwendet werden. So kann man z.B. erreichen, dass nicht jeder Mitwirkende eines Projektes Einblick in die kompletten Sourcen hat. Und dennoch kann das Projekt verlinkt werden. Auch kann man dann über Projekt- und Sprachgrenzen hinweg verlinken. Es hat schon seinen Grund, dass es statische Libraries gibt. Wieso es das bei Delphi nun nicht geben soll, das wundert mich einfach, und ich kann es nicht verstehen

                  Comment


                  • #10
                    Hallo Reinhard,

                    Packages (BPLs) sind genau das, was doch suchst. Und Packages verändern die IDE nicht! Du weißt, dass Du Packages verwenden kannst, ohne Sie in der IDE zu installieren?

                    Delphi-Packages sind allerdings nicht über Sprachgrenzen verwendbar, wenn man mal von Borland C++ absieht.

                    Gruß
                    Pete

                    Comment


                    • #11
                      Eine Delphi-Library (dcu) kann auch ohne Quellcode (pas) verwendet werden. Voraussetzung ist allerdings, dass die dcu mit der gleichen Delphiversion mit gleichen Servicepacks erstellt wurde.
                      Eine BPL (Packages) ist eine Borland-DLL.
                      Auch BPL's können ohne Quellcode in Delphi eingebunden werden. Wobei hier noch die dcp benötigt wird. Funktioniert allerdings auch nur, wenn zur Erstellung der BPL die gleiche Delphiversion verwendet wurde.
                      Im übrigen spielt die Frage pas, dcu in der Praxis eigentlich keine Rolle, da der Delphi-Compiler auf heutigen PC's derart schnell ist, dass es sich nicht lohnt darüber den Kopf zu zerbrechen.
                      Schreibt man sehr große Anwendungen mit mehreren Personen, dann gibt es wiederum verschiedene Möglichkeiten. Z.B. könnte man eine DLL oder ein COM-Objekt mit C++ erstellen und diese von einer mit Delphi erstellten Anwendung, DLL oder BPL aus ansprechen.
                      Neuere Delphi-Versionen unterstützen auch .NET

                      Comment


                      • #12
                        Hallo Reinhard,
                        einer der Vorteile von Delphi ist der Compiler. Er ist sehr schnell, so daß ich keinen Nachteil darin sehe, Dateien zu includen.
                        Versuche mal die JEDI Library in Deinem Delphi einzubinden. Das sind weit mehr als 1,5 Mio. Zeilen Quellcode. Das erledigt der Compiler nicht im Minutenbereich, sondern im Sekundenbereich!
                        (Bei meinem 3,2 GHz Barton)

                        zu c+= 3 -> inc(c,3);

                        cu Michae

                        Comment


                        • #13
                          Wieder vielen Dank für eure Antworten und Vorschläge. Mir ist schon klar, dass man vieles auch anders machen kann. Es ist jedoch augenfällig, dass es im BDS 2006 unter C++ Packages UND Libraries gibt, unter Delphi jedoch nur Packages. Und mich hätte eben der GRUND dafür interessiert, wieso das so ist. Denn ich würde es gerne VERSTEHEN. Dass man sich anders behelfen kann, dürfte klar sein. Nur, meine Frage bleibt unbeantwortet, wieso es (zu Win32) unter Delphi keine Static-Library-Projekte gibt, in C++ aber schon

                          Comment


                          • #14
                            > dass es im BDS 2006 unter C++ Packages UND Libraries gibt, unter Delphi jedoch nur Packages.

                            Borland muß ja wohl unter C++ die "normalen" C++-Features unterstützen muß. Und ohne Libraries würde man den C++-Builder (oder das entsprechende Teil in BDS 2006) nicht verkaufen können.

                            > Und mich hätte eben der GRUND dafür interessiert, wieso das so ist.

                            Bisher haben nur sehr wenige Delphi-Entwickler dieses Features vermisst haben und es gefordert hätten.

                            Aber bietet nicht die möglichkeit Obj-Datei in Delphi einzubinden nicht einen brauchbaren ersatz. Z.B im <a href="http://pngdelphi.sourceforge.net/">PNGImage-Projekt</a> wird hierrüber die ZLib-Kompression einer Standard-C/C++-Implementierung eingebunden. Schau mal dort ob das nicht evtl. auch eine Alternative wäre

                            Comment


                            • #15
                              Hi Reinhard,
                              probiere doch einfach mal "Delphi" in Delphi zu programmieren und nicht c++. Eine gewisse Einarbeitung ist hier nötig, dürfte Dir aber aufgrund der c++ Fähigkeiten nicht schwerfallen. (ein paar Sachen vergessen, ein paar Neue dazulernen und schon klappt's mit Delphi ;-)

                              cu Michae

                              Comment

                              Working...
                              X