Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Dll-s registrieren, Verständnisfrage (https://www.delphipraxis.net/175027-dll-s-registrieren-verstaendnisfrage.html)

Nintendo 25. Mai 2013 21:37

Dll-s registrieren, Verständnisfrage
 
Hallo,

ich spiele gerade mit einem Testpluginsystem rum, das ich aus der DP geladen habe. Leider finde ich den Thread nicht mehr, sonst würde ich vielleicht dort posten. Aber ich habe be der Dll Registrierung auch ein Verständnisproblem, weshalb es vielleicht gar nicht so schlecht ist, in einem neuen Thread zu posten.

Mein Problem:

-Wenn ich eine Dll verwenden will, muss ich sie im System vorher registrieren.

könnte ich dann nicht auch einfach den Suchpfad für die Dll angeben, um die Registrierung umgehen zu können. Registrierung mag nach meinem aktuellen Verständnis bei systemweit verwendeten Dlls nützlich sein, aber bei eigenen Plugins?

Diese Kommandozeile habe ich eingegeben auf meinem Rechner:
regsvr32 c:\Program Files\Borland\Delphi7\Projects\plugins\extendablea pp\Bins\Plugin01.dll


Den Dll Suchpfad habe ich aus Total Commander aus der Pfadzeile kopiert, nachdem ich mit der Maus da rein galkickt habe. Der Cursor der Dateiliste stand dabei auf den Dateinamen "[..]". Ich kan dann den aktuellen Pfad mit Copy und Paste übernehmen.

Dennoch erhalte ich vom RegServer die Fehlermeldung:

...dll was loaded but the DllRegisterServer Entry Point was not found.

This file cannot be registered.


Was läuft hier falsch.

Ich verwende WinXP Home Service Pack 3 + aktuelle Updates.

Auf dieser Inernetseite habe ich mich über RegSvr32 informiert:
http://www.microsoft.com/resources/d....mspx?mfr=true

Regsvr32

This command-line tool registers .dll files as command components in the registry.
Syntax

regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname
Top of pageTop of page
Parameters

/u : Unregisters server.

/s : Specifies regsvr32 to run silently and to not display any message boxes.

/n : Specifies not to call DllRegisterServer. You must use this option with /i.

/i:cmdline : Calls DllInstall passing it an optional [cmdline]. When used with /u, it calls dll uninstall.

dllname : Specifies the name of the dll file that will be registered.

/? : Displays help at the command prompt.

Ich will alle Mitteilungen sehen, weshalb die Option /s nicht in Betracht kommen kann. Ich will auch einfach nur die Dll registrieren, deshalb möchte ich auch nicht mit der Option /n oder /i:cmdline rumbasteln. Sondern einfach nur die besagte Dll registrieren.

Warum, hier kommt wieder die Verständnisfrage, muss ich das überhaupt machen. Warum nicht einfach den Suchpfad beim Laden der Dll im Programm angeben.

Was passiert bei der Dll Registrierung in Windows?

sx2008 25. Mai 2013 22:08

AW: Dll-s registrieren, Verständnisfrage
 
Zitat:

Zitat von Nintendo (Beitrag 1216382)
Was läuft hier falsch?

Dein DLL ist keine ActiveX-DLL.
ActiveX-DLLs enthalten die Funktionen DllRegisterServer und DllUnregisterServer.
Du brauchst diese Funktionen nicht selbst zu schreiben.
Delphi bindet diese automatisch ein wenn du eine neue "Active-X Bibliothek" erstellst.
Zitat:

Zitat von Nintendo (Beitrag 1216382)
Was passiert bei der Dll Registrierung in Windows?

Es wird die DLL geladen und dann die Funktion DllRegisterServer aufgerufen.
Die Funktion verankert sich dann in der Windows Registry indem unter anderem der Pfad zur DLL sowie die enthaltenen CoClassen dort abgelegt werden.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx


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