![]() |
[DLL][COM] Problem mit Laden der DLL
Hallo alle zusammen,
Ich hab ein kleines oder auch großes Problem. Ich habe in einer DLL ein ComServer (um genau zu sein ein OPC Server) und ich habe mehrere Callback Schleifen in dieser DLL zum update einer Desktop Anwendung die an die DLL angedockt hat (also über Implementierung der DLL-Schnittstelle, nicht über COM oder OPC). Nun starte ich diese Desktop Anwendung und alles ist perfekt. Nun starte ich einen OPC Client um den Namespace zu bearbeiten, allerdings habe ich jetzt folgendes beobachtet: Es werden 2 Instanzen der DLL kreiert, also das COM-Objekt lädt die DLL nochmal in den Speicher. Nun möchte ich aber das die DLL nur einmal geladen wird und das COM Objekt auch nur EINMAL global erzeugt wird. Gibt es da eine Möglichkeit? Gruß Andi |
Re: [DLL][COM] Problem mit Laden der DLL
Was spricht dagegen das zwar das COM-Objekt mehrmals erzeugt wird aber dieses per Singleton-Pattern nur mit einem eigentlichen Worker-Objekt arbeitet?
|
Re: [DLL][COM] Problem mit Laden der DLL
Das wäre nicht das Problem, wenn nicht das Worker-Objekt auch mehrmals erzeugt wird und das passiert leider wirklich -> Also die DLL muss mehrmals geladen werden. Less ich die Handles aus hab ich 2 verschiedene DLL handles.
Zum Beispiel befindet sich in der DLL ein Debuuger Thread der intern nachrichten abfangt und in ein Log file schreibt. Jetzt passiert folgendes: Die Anwendung die an die DLL angedockt ist (entweder durch Implementierung oder COM Creation) schreibt auch das LOG und zwar nur mit den Werten aus der eigenen DLL instanz, d.h. die beiden sehen sich überhaupt net. |
Re: [DLL][COM] Problem mit Laden der DLL
Beim erstellen der COM-Klasse über den IDE-Wizard hast du doch einige Entscheidungen bezüglich Appartment-Model, ... gemacht. In deiner Implementierungsunit des COM-Interfaces gibt es doch im Initialisierungsabschnit einen Eintrag. Schau mal in der Hilfe nach. Ich glaube duch änderung des Appartmentmodells sollte sich das Lösen lassen.
|
Re: [DLL][COM] Problem mit Laden der DLL
Ist kein COM Objekt das mit dem IDE Wizard entwickelt worden ist!
Ist leider eine geschlossene Library.. Ich bin gerade dabei mal die XRTL Library mir anzuschauen, die hat auch einen guten OPC Server drin. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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