Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi DLL registrieren (https://www.delphipraxis.net/197977-dll-registrieren.html)

Delbor 24. Sep 2018 12:48

DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi zusammen

So versuche ich, eine DLL bei Windows zu registreren:
Anhang 50008
Im Installationsverzeichnis befindet sich ein PDF:
Anhang 50009
Danach habe ich den oben als erstes eingefügten Pfad getippt und eine Fehlermeldung erhalten (so ewa: Datei nicht vorhanden).
Tatsächlich befindet sich Debenu in 'Programme(x86), also hab ich diesen Pfad eingegeben.

Ich hab die Fehlermeldung nochmal anzeigen lassen:
Zitat:

---------------------------
RegSvr32
---------------------------
Fehler beim Laden des Moduls "C:\Program Files(x86)Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll".

Stellen Sie sicher, dass die Binärdatei am angegebenen Pfad gespeichert ist, oder debuggen Sie die Datei,
um Probleme mit der binären Datei oder abhängigen DLL-Dateien auszuschließen.

Das angegebene Modul wurde nicht gefunden.


---------------------------
OK
---------------------------
Stimmmt die Schreibweise überhaupt? Ich hab mich einfach mal daauf verlassen, dass diese Leute wissen, was sie schreiben...

Gruss
Delbor

Delphi.Narium 24. Sep 2018 12:52

AW: DLL registrieren
 
Kann das Problem bei
Zitat:

oder abhängigen DLL-Dateien auszuschließen
liegen?

Sprich: Benötigt die DLL noch weitere DLLs, die nicht im Suchpfad bzw. dem Verzeichnis der DLL liegen?

Der Fehler muss nicht zwingend an Deiner Eingabe liegen, sondern kann auch von weiteren Abhängigkeiten innerhalb der DLL verursacht werden.

Aviator 24. Sep 2018 13:00

AW: DLL registrieren
 
Die doppelten Anführungszeichen am Ende fehlen. Das wird dann wohl falsch umgewandelt weil Leerzeichen im Pfad vorkommen. Siehe auch die Fehlermeldung wenn diese richtig hier im Forum übernommen wurde.
Da fehlt das Backslash dann nämlich im Pfad:

Fehler beim Laden des Moduls "C:\Program Files(x86)\Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll".

Delbor 24. Sep 2018 13:17

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Delpi.Narium

Im Installationsverzeichnis bfinden sich ausser den 2 DLL 32Bit & 64Bit auch zwei TLBs:
Anhang 50010
Diese werden wohl die dlls benötigen, nicht umgekehrt.

UUps, gerade gesehen:
Zitat:

Zitat von Aviator (Beitrag 1413990)
Die doppelten Anführungszeichen am Ende fehlen. Das wird dann wohl falsch umgewandelt weil Leerzeichen im Pfad vorkommen. Siehe auch die Fehlermeldung wenn diese richtig hier im Forum übernommen wurde.
Da fehlt das Backslash dann nämlich im Pfad:

Fehler beim Laden des Moduls "C:\Program Files(x86)\Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll".

Wie heisst es doch so schön: 'Wer lesen kann, ist klar im Vorteil'
Wer sehen kann, auch...

Vielen Dank, Aviator!

Gruss
Delbor

Delbor 24. Sep 2018 14:11

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen
Einge Versuche und Nerventonnagen später:
Anhang 50012
Immerhin habe ich dabei entdeckt, dass mit den Pfeiltasten durch den String navigiert werden kann sowie <Ctrl+C> und <Ctrl+V> funktionieren. Immerhin etwas, und die Hälfte meiner Nerven-Tonnagen hätte ich mir sparen können.
Ein Freund der Kommandozeile bin ich deswegen aber trotzdem nicht..

Ach ja, die Fehlermeldung: Wie gehabt...

Gruss
Delbor

Dalai 24. Sep 2018 14:24

AW: DLL registrieren
 
Ich empfehle sehr, die Pfadkomplettierung zu nutzen, die man mit der TAB-Taste erhält. Also Pfad anfangen zu tippen, TAB drücken, um den Rest komplettieren zu lassen. Alternativ: Shift+Rechtsklick auf die DLL > Pfad kopieren (oder so ähnlich) und diesen in das offene CMD-Fenster einfügen.

Ziel der Tips ist, Tippfehler auszuschließen und in jedem Fall einen korrekten Pfad zu erhalten.

Grüße
Dalai

EWeiss 24. Sep 2018 15:05

AW: DLL registrieren
 
Install!
cd /d "%~dp0"
regsvr32.exe DebenuPDFLibraryLite1114.dll

erstell ne *Install.bat im gleichen Ordner und fertig!

UnInstall!
cd /d "%~dp0"
regsvr32.exe /u DebenuPDFLibraryLite1114.dll

erstell ne *UnInstall.bat im gleichen Ordner und fertig!

gruss

Delbor 24. Sep 2018 15:25

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hi Dalai
Zitat:

Zitat von Dalai (Beitrag 1414003)
Ich empfehle sehr, die Pfadkomplettierung zu nutzen, die man mit der TAB-Taste erhält. Also Pfad anfangen zu tippen, TAB drücken, um den Rest komplettieren zu lassen. Alternativ: Shift+Rechtsklick auf die DLL > Pfad kopieren (oder so ähnlich) und diesen in das offene CMD-Fenster einfügen.

Ziel der Tips ist, Tippfehler auszuschließen und in jedem Fall einen korrekten Pfad zu erhalten.

Grüße
Dalai

Ich habbs etwas anders gemacht: In der Adressleiste des Explorers hab ich den Pfad markiert, so dass er nicht mehr in der lesbaren Form, sondern in der syntaxähnlichen Form dasteht.
Anhang 50013

Anhang 50014
Dann hab ich diesen Pfad in der Kommandozeile reinkopiert (ich bin mir immer noch nicht gewohnt, dass sowas geht) und den Dateinamen dazugeschrieben.
Anhang 50015
Die Fehlermeldung:
Zitat:

RegSvr32
---------------------------
Das Modul "C:\Program Files (x86)\Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll" wurde geladen, der Aufruf an "DllRegisterServer" ist jedoch mit dem Fehlercode 0x80004005 fehlgeschlagen.

Weitere Informationen zu diesem Problem stehen Ihnen online zur Verfügung. Suchen Sie nach dem Fehlercode.
Nachdem Google sehr viel dazu gefunden hat, hab ich dann mal was bei Microsoft gefunden.

Gruss
Delbor

Aviator 24. Sep 2018 15:29

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Delbor (Beitrag 1414011)
Dann hab ich diesen Pfad in der Kommandozeile reinkopiert (ich bin mir immer noch nicht gewohnt, dass sowas geht) und den Dateinamen dazugeschrieben.

Eigentlich geht das schon immer :)

In Windows 10 ist nur neu, dass das auch mit CTRL + V funktioniert. Das ging vorher so nicht. Aber Markieren, Kopieren und Einfügen konnte man immer schon über das Anwendungsmenü. :-D

Anhang 50016

EDIT: Hier noch ein Screenshot von Windows XP.
Anhang 50017

EWeiss 24. Sep 2018 15:36

AW: DLL registrieren
 
Übersetze mein Schnipsel nach Delphi und registriere deine DLL aus deiner Anwendung.
Oder verwende meine Beispiele über eine *.Batch Datei. (mit Admin Rechten)
Wenn du keine erstellen kannst nun dann weis ich auch nicht.

gruss

Dalai 24. Sep 2018 15:42

AW: DLL registrieren
 
Zitat:

Zitat von Delbor (Beitrag 1414011)
Ich habbs etwas anders gemacht

So geht's natürlich auch.
Zitat:

RegSvr32
---------------------------
Das Modul "C:\Program Files (x86)\Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll" wurde geladen, der Aufruf an "DllRegisterServer" ist jedoch mit dem Fehlercode 0x80004005 fehlgeschlagen.

Weitere Informationen zu diesem Problem stehen Ihnen online zur Verfügung. Suchen Sie nach dem Fehlercode.
Das sieht mir nach Windows Errorcode 5 aus, also Zugriff verweigert. Führst du die CMD als Administrator aus? DLLs werden in aller Regel nur mit Administratorechten (de)registriert.

Grüße
Dalai

Delphi.Narium 24. Sep 2018 15:45

AW: DLL registrieren
 
Der Link von Microsoft und AdobeFlash ist ja nun nicht wirklich hilfreich und hat hiermit nix zu tuen.

Der Fehlercode ist nicht einmalig, sondern wird in den unterschiedlichsten Zusammenhängen genutzt.

Im Zusammenhang mit regsrv32 kann man dashier finden: https://support.microsoft.com/de-de/...gister-a-dll-b

Ist ein Rechteproblem.

Für die Nutzung von regsrv32 braucht man wohl gewöhnlich Adminrechte.

Hast Su die?

Bei Google suchen0x80004005 regsrv32

Aviator 24. Sep 2018 15:48

AW: DLL registrieren
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1414016)
Für die Nutzung von regsrv32 braucht man wohl gewöhnlich Adminrechte.

Hast Su die?

Wenn ich mir sein CMD Fenster so anschaue, dann hat er es ohne Admin-Rechte gestartet.

EWeiss 24. Sep 2018 15:49

AW: DLL registrieren
 
Mein lieber Compiler Gesangsverein liest jemand auch die Beiträge?
Extrahiere das Teil in den DLL Ordner starte Install.bat mit Adminrechten und gut ist.
Warum da noch lange diskutieren. :wall:

gruss

Aviator 24. Sep 2018 15:53

AW: DLL registrieren
 
Zitat:

Zitat von EWeiss (Beitrag 1414018)
Mein lieber Compiler Gesangsverein liest jemand auch die Beiträge?
Extrahiere das Teil in den DLL Ordner starte Install.bat mit Adminrechten und gut ist.
Warum da noch lange diskutieren.

gruss

Warum immer so aggressiv? Wenn er eine DLL nur einmal registrieren will, wieso soll er dann gleich eine Batch Datei in dem Verzeichnis erstellen? Außerdem handelt es sich nicht um eine eigene DLL sondern um eine, die im "Program Files" Verzeichnis liegt. Es ist zwar nicht schlimm dort eine Batch Datei anzulegen, aber für eine einmalige Sache ist das absoluter Overkill.

EWeiss 24. Sep 2018 15:54

AW: DLL registrieren
 
Zitat:

ist das absoluter Overkill
Mit Verlaub Blödsinn.
Ob ich nun CMD aus dem Pfad herausstarte oder eine Batchdatei dafür verwende ist gehüpft wie gesprungen aber es Automatisiert das ganze.
Wo ist der Overkill.

Zitat:

Außerdem handelt es sich nicht um eine eigene DLL sondern um eine, die im "Program Files" Verzeichnis liegt
Was denn nu "Program Files" oder "Program Files (x86)"


gruss

himitsu 24. Sep 2018 16:18

AW: DLL registrieren
 
oder
Code:
regsvr32.exe "%~dp0\DebenuPDFLibraryLite1114.dll"

C:\Program Files\ ist der Pfad für eine 32-Bit-DLL im 32 Bit-Windows (das ist der Grund für den angegebenen Pfad in deren PDF), aber du hast ein 64-Bit-Windows.
Oder eben der Pfad für die 64-Bit-DLL im 64-Bit-Windows.


Und ein 32-Bit-Programm wird standardmäßig beim Zugriff auf C:\Program Files\ nach C:\Program Files (x86)\ umgeleitet. (in einem 64-Bit-Windows)

Dalai 24. Sep 2018 17:03

AW: DLL registrieren
 
Zitat:

Zitat von himitsu (Beitrag 1414022)
Und ein 32-Bit-Programm wird standardmäßig beim Zugriff auf C:\Program Files\ nach C:\Program Files (x86)\ umgeleitet. (in einem 64-Bit-Windows)

Nein, die Umleitung betrifft ausschließlich %SystemRoot%\system32. "%SystemDrive%\Program Files" wird niemals wegen der Architektur umgeleitet, sondern nur in Bezug auf den VirtualStore, der aber damit nicht zu tun hat sondern nur mit fehlenden Schreibrechten und fehlendem Manifest der Anwendung. Anders sieht es vielleicht bei Zugriff per Umgebungsvariable %ProgramFiles% aus, aber die wurde ja hier gar nicht verwendet.

Mit anderen Worten: Ein 32-bit Programm kann problemlos in "%SystemDrive%\Program Files" liegen und ein 64-bit Programm in "%SystemDrive%\Program Files (x86)".

Grüße
Dalai

Delbor 24. Sep 2018 17:45

AW: DLL registrieren
 
Hi zusammen

Zitat:

Zitat von Dalai (Beitrag 1414015)
Zitat:

RegSvr32
---------------------------
Das Modul "C:\Program Files (x86)\Debenu\PDF Library\Lite\DebenuPDFLibraryLite1114.dll" wurde geladen, der Aufruf an "DllRegisterServer" ist jedoch mit dem Fehlercode 0x80004005 fehlgeschlagen.
...
Das sieht mir nach Windows Errorcode 5 aus, also Zugriff verweigert. Führst du die CMD als Administrator aus? DLLs werden in aller Regel nur mit Administratorechten (de)registriert.

Grüße
Dalai

Nun hab ich das Verzeichnis Lite aus dem Programme-Ordner auf meine Developer-Prtition kopiert - da sind unter anderem auch etliche Beispiele, und die haben auf C:\ eigentlich nichts zu suchen. Zugriff verweigert sollte es nun nicht mehr geben.

Zitat:

Zitat von himitsu (Beitrag 1414022)
Und ein 32-Bit-Programm wird standardmäßig beim Zugriff auf C:\Program Files\ nach C:\Program Files (x86)\ umgeleitet. (in einem 64-Bit-Windows)

Das war mir eigentlich klar, aber die Fehlermeldungen irritierten mich doch ziemlich, so dass ich das '(x86)' mal wegliess. Erst als ich den Pfad aus der Adresszeile des Explorers kopierte, bemerkte ich das Leerzeichen vor '(x86)'.

Daran, dass ich zur Registrierung Adminrechte benötige, wird sich wohl nichts ändern, obwohl ich das gerade gegenteilig verstehe.
DasLite-Verzeichnis enthält ja auch noch eine Tlb. Daher ist die Dll wohl der COM-Server, bzw. eigentlich Quick Debenu Lite


Gruss
Delbor

KodeZwerg 24. Sep 2018 18:06

AW: DLL registrieren
 
*war doppelt, sorry*

Dalai 24. Sep 2018 18:43

AW: DLL registrieren
 
Zitat:

Zitat von Delbor (Beitrag 1414032)
Nun hab ich das Verzeichnis Lite aus dem Programme-Ordner auf meine Developer-Prtition kopiert - da sind unter anderem auch etliche Beispiele, und die haben auf C:\ eigentlich nichts zu suchen. Zugriff verweigert sollte es nun nicht mehr geben.

Es geht nicht um den (Schreib)Zugriff auf die Datei sondern den Zugriff auf die Registry, denn dort wird eine DLL registriert.

Grüße
Dalai

hoika 24. Sep 2018 21:11

AW: DLL registrieren
 
Hallo,
QuickPDF muss eigentlich für die Nutzung mit Delphi gar nicht registriert werden.
Wenn man die zur Delphi-Version passenden DCU's und den Lizenzcode (braucht man den auch in der Lite-Version?) hat.

p80286 24. Sep 2018 21:17

AW: DLL registrieren
 
Zitat:

Zitat von Aviator (Beitrag 1414019)
Es ist zwar nicht schlimm dort eine Batch Datei anzulegen, aber für eine einmalige Sache ist das absoluter Overkill.

Korrekt! für eine einmalige Sache bestimmt etwas umständlich.
Und wenn dann die Fehlermeldungen kommen und die Zeile umgebrochen wird ... dann ziehe ich eine Batchdatei jeder Kommandozeilen-Artistik vor.

Gruß
K-H

hoika 24. Sep 2018 21:32

AW: DLL registrieren
 
Hallo,
ich finde eine Batch-Datei auch gut, genauer 2 Dateien, Register/Unregister.

Delbor 25. Sep 2018 08:12

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen

Gestern abend hats dann endlich geklappt:
Kommandozeile mit Adminrechten=>den aktuellen Pfad in Delpphi4Erweiterungen=>Debenu=>...
Wenn ich nun über Komponente\Typbibliothek importieren gehe, ist die Dll da aufgeführt. Nun hätte ich eigentlich erwartet, dass das Embarcadero-Wiki erwähnt, dass da nicht nur Tlb aufgelistet werden, sondern auch Dlls und Ocxe - aber nichts da. Daraus ersteht der Eindruck, dass auf diese Weise eine Dll als Typbibliothek importiert werden kann.

Weiss jemand, was da abläuft, wenn ich die Dll auswähle und die 'Typbibliothek' importiere (und einen Komponentenwrapper erstellen lasse)?


Gruss
Delbor

PS:
Klar, kann man auch austesten - einfach mal machen...
  1. Also: Testprojekt offfen
  2. Typbibliothek importieren
  3. Dll wählen
  4. OK
  5. Datei=>Neu=>Weitere=>ActiveX
  6. ActiveX_Bibliothek
  7. Testprojekt wird geschlossen
  8. Neues Projekt wird erstellt (Projekt1)
  9. Projektverwaltung enthält einen Zweig mit ridl
Anhang 50022

Ups - ich habe ganz vergessen, dass ich das gestern durchgezogen habe. Da ich nach der Palettenseite gefragt wurde und da ActiveX gewählt habe, sollte das unter Neu=>WeitereActiveX zur Verfügung stehen, nachdem ich eine ActiveXBibliothek erstellt habe.
Gestern hab ich aber an diesem Punkt erst mal abgebrochen, da es schon sehr spät war.
Das bedeutet aber ja, dass ich damit den Com-Server (auf Grund der Dll?) erstellen muss. Oder hab ich das jetzt falsch interprtetiert?

Delbor 26. Sep 2018 14:42

AW: DLL registrieren
 
Hi Hoika
Zitat:

Zitat von hoika (Beitrag 1414047)
Hallo,
QuickPDF muss eigentlich für die Nutzung mit Delphi gar nicht registriert werden.
Wenn man die zur Delphi-Version passenden DCU's und den Lizenzcode (braucht man den auch in der Lite-Version?) hat.

Mir stehen keinerlei Delphi-Dateien zur Verfügung.

Gruss
Delbor

Delbor 1. Okt 2018 13:49

AW: DLL registrieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi hoika

Zitat:

Zitat von Delbor (Beitrag 1414265)
Hi Hoika
Zitat:

Zitat von hoika (Beitrag 1414047)
Hallo,
QuickPDF muss eigentlich für die Nutzung mit Delphi gar nicht registriert werden.
Wenn man die zur Delphi-Version passenden DCU's und den Lizenzcode (braucht man den auch in der Lite-Version?) hat.

Mir stehen keinerlei Delphi-Dateien zur Verfügung.

Gruss
Delbor

Da war ich zu vorschnell. Das Installationsverzeichnis enthält nebst einigen Beispielen offenbar auch eine "Unit", zwar für C++ und C# , aber wenn ich nicht völlig daneben liege, sind die als Compilate(DCUs) auch in Delphi verwendbar. Es gibt mindestens ein Beispiel für Pascal, das eine solche Unit verwendet. Aber dazu müsste ich wohl die DCU dieser Datei haben:
Anhang 50049
Diese habe ich jedochh nicht, und soweit ich das verstanden habe, müsste ich einen Lizenzschlüssel haben, um sie mir besorgen zu können. Nach der Registrierung der dll stand mir die schon erwähnte ridl-Datei sowie eine .tlb zur Verfügung - beide sind leer.

Ich habe je länger desto weniger Durchblick. Andersherum wäre es sehr viel besser.

Gruss
Delbor


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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