![]() |
COM-Server registrieren
Ich beschäftige mich jetzt seit ein paar Tagen mit COM. Ich weiß mittlerweile, was COM ist, wie komm funktioniert (nun ja fast) und wie man mit Delphi einen COM-Server erstellt.
Bleibt nur noch eine Frage, warum müssen COM-Server im System registriert werden? |
Re: COM-Server registrieren
COM-Server spricht man ja mit deren GUID an.
Die 'Registrierung' ist im Prinzip nichts anderes, als dass in der Registry hinterlegt wird, welche GUID zu welchem COM-Objekt gehört, wo das Binary liegt und noch ein paar Informationen zu Einsprungspunkten in der jeweiligen DLL. Im Prinzip alles, was das System braucht, um bei einer Anfrage nach dem Objekt dieses auch liefern zu können. |
Re: COM-Server registrieren
Jo das Problem liegt ja in der Verknüpfung zwischen GUID und Ablageort der DLL oder der EXE.
Man unterscheider mit der Registrierung auch, ob es ein Inproc- oder ein OutprocServer ist. Zudem werden dort der TypMarshaller festgelegt, der für den Transport der Parameter verantwortlich ist (nur OutProcServer) |
Re: COM-Server registrieren
Ich habe das jetzt so ausgedrückt:
Zitat:
|
Re: COM-Server registrieren
Zitat:
Zitat:
Für InProcessServer ist das nicht notwendig, weil der Aufrufer und COM denselben Speicher sich teilen, ja sogar derselbe Process sind. Es ist also ein ganz normaler Stackwind und Stackunwind Aufruf. |
Re: COM-Server registrieren
Local Server sind das, was du als out-process Server bezeichnest.
|
Re: COM-Server registrieren
Zitat:
|
Re: COM-Server registrieren
Zitat:
|
Re: COM-Server registrieren
Zitat:
|
Re: COM-Server registrieren
Im Zweifelsfall streamt (serialisiert) man seine Klassen in einen Memorystream, bupselt den in ein Variant (Array Of Byte) und bläst ihn über das Netz. Auf der anderen Seite wieder in einen Stream und dann auspacken.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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