AGB  ·  Datenschutz  ·  Impressum  







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

Type Library in dll compilieren

Ein Thema von weltaran · begonnen am 5. Apr 2005 · letzter Beitrag vom 8. Apr 2005
Antwort Antwort
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#1

Type Library in dll compilieren

  Alt 5. Apr 2005, 21:01
Hallo Leute!

Mir sind nun schon des öfteren DLLs zwischen die Finger gekommen, welche die Funktionsparameter in einer sogenannten Typ-Bibliothek zur Verfügung stellen können. Mir ist bekannt, dass man mit Delphi auch TypBibliotheken anlegen kann, und zwar nicht nur für COM-DLLs sondern auch für herkömmliche DLLs. Diese Typ-Bibliothek ist dann jedoch als separates file vorhanden (*.tlb). Gibt es keine Möglichkeit diese (binären) Daten innerhalb der DLL zu speichern, so wie es andere Entwicklungsumgebungen/Programmiersprachen offensichtlich auch können? Vielleicht ein externes Tool?

Was meint ihr?

Ciao
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Type Library in dll compilieren

  Alt 8. Apr 2005, 10:33
OK, dann muss ich mir halt selbst antworten. Habe das Problem gelöst.

Vorgehensweise:

1. Datei/Neu/ActiveX-Bibliothek
2. Datei/Neu/TypBibliothek
3. Auskommentieren im DLL-Source-File:
- in den uses: ComServ
- alle vier DLL... -Funktionen
4. Neue Unit anlegen und Klassen/Funktionen anlegen (stdcall)
5. In der TypBibliothek (Ansicht/TypBibliothek):
- Neues Modul anlegen:
* Name des Moduls unerheblich
* Name der DLL: tatsächlicher name der zu erzeugenden DLL eintragen
- Methode innerhalb des Modula anlegen:
* Funktionsname so eintragen, wie er später in der Funktionsliste erscheinen soll
* DLL-Einsprung: Funktionsname so eintragen, wie er in der source verwendet wird
* Über- und Rückgabeparameter entsprechen der source eintragen
6. Tatsächl. Funktionsname in die exports-Anweisung eintragen
7. Datei ..._TLB.pas aus dem Projekt entfernen
8. Compilieren, fertig

Die DLL hat dann lediglich 19 KB (wenn nur eine kleine Funktion enthalten ist) und ist natürlich KEINE ActiveX-DLL. Würde man die COM-Server Funktionalität beibehalten wären es ca. 300 KB.

Anwendungen, die die binären Informationen der IN der DLL enthaltenen TypBibliothek auswerten können, stellen nun alle Methoden samt Parameternamen und -typen zur Auswahl dar.

Vielleicht kann es ja jemand gebrauchen.

Ciao

weltaran
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Type Library in dll compilieren

  Alt 8. Apr 2005, 11:02
Zitat von weltaran:
OK, dann muss ich mir halt selbst antworten. Habe das Problem gelöst.

Vielleicht kann es ja jemand gebrauchen.
Danke schön für die Forschungsarbeit.
Ich habe mich manchmal schon gefragt, warum es eigentlich für die Windows-API keine TLB gibt.
Wenn dann die diversen Programmierumgebungen (Delphi, C++Builder, VB, ...) die TLBs lesen und verstehen würden, wären die meisten Unsicherheiten bei Benutzung von DLLs geklärt.
Leider kann Delphi5 die Deklarationen im Abschnitt "module" nicht importieren.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Type Library in dll compilieren

  Alt 8. Apr 2005, 11:21
Zitat von shmia:
Ich habe mich manchmal schon gefragt, warum es eigentlich für die Windows-API keine TLB gibt.
Wenn dann die diversen Programmierumgebungen (Delphi, C++Builder, VB, ...) die TLBs lesen und verstehen würden, wären die meisten Unsicherheiten bei Benutzung von DLLs geklärt.
Als die WinAPI auf DLL-Basis definiert wurde gabe es dieses Konzept der TLB's noch nicht. Erst über die Irrwege von DDE/OLE1 wurde mit COM und TLB's ein halbwegs vernünftiges System entwickelt, in der eine Funktionsbeschreibung mit einer Komponente sprachunabhängig mitgeliefert wurde. Und für die "alten" DLL-Schnittstellen hat man sich halt nicht die Arbeit gemacht diese nachzuliefern.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:57 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