Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi DCOM-Problem - Klasse nicht registriert (https://www.delphipraxis.net/24196-dcom-problem-klasse-nicht-registriert.html)

HaJo 17. Jun 2004 09:06


DCOM-Problem - Klasse nicht registriert
 
Hallo in die Runde.

Habe folgendes Problem:

Ich habe zwei NT2003-Entwicklungs-Rechner mit exakt gleich installierter Software.

Kompiliere ich meine Anwendungssoftware mit Delphi7, die Winword und WordPerfect über DCOM "fernsteuert", erhalte ich auf einem PC bei dem versuch WordPerfect zu starten, die Fehlermeldung "Klasse nicht registriert". Und das obwohl Corel ordnungsgemäß in der Komponenten-Verwaltung registriert ist.

Schlimm daran ist, gebe ich beide EXE-Dateien weiter, bleibt dieser Fehler - "Klasse nicht registriert" scheinbar an die EXE-Datei gebunden und tritt auch auch beim Endanwender auf.

Wäre für jeden Rat dankbar.

Liebe Grüße
Jochen

shmia 17. Jun 2004 09:33

Re: DCOM-Problem - Klasse nicht registriert
 
Zitat:

Zitat von HaJo
Kompiliere ich meine Anwendungssoftware mit Delphi7, die Winword und WordPerfect über DCOM "fernsteuert", erhalte ich auf einem PC bei dem versuch WordPerfect zu starten, die Fehlermeldung "Klasse nicht registriert". Und das obwohl Corel ordnungsgemäß in der Komponenten-Verwaltung registriert ist.

Das Problem ist die Funktion CreateOleObject. Würde die Funktion folgende
Exceptionmeldung erzeugen "Klasse <WordPerferct.Application> nicht registriert", dann wüsste man
nach was man suchen muss (nämlich in der Registry/HKEY_CLASSES_ROOT nachschauen, ob es den Schlüssel WordPerferct.Application gibt. Dann würde auch der Schreibfehler auffallen).

Du könntest auf Aufrufe an CreateOleObject auf deine eigene Funktion umbiegen:
Delphi-Quellcode:
function CreateOleObject2(const ClassName: string): IDispatch;
begin
   try
      result := CreateOleObject(ClassName : string);
   except
      on E:Exception do
      begin
         E.Message := E.Message + #13#10'ClassName:'+ClassName;
         Raise;
      end;
   end;
end;

HaJo 17. Jun 2004 10:24

Re: DCOM-Problem - Klasse nicht registriert
 
Danke shmia für die Hilfe,

glaube aber das Problem selber schon gelöst zu haben.

Da ich mit der "Frühen Bindung" arbeite, habe ich einfach als letzten Versuch die Typ-Bibliothek (WordPerfect_Tlb" nochmals erzeugt.
Und siehe da, die Fehlermeldung ist verschwunden und WordPerfect wird gestartet.

Die einzige Erklärung, die ich im Moment dafür habe, sind die geänderten GUID's, die nun zur Laufzeit in der Unit stehen.

Ist zwar auch wiedersinnig, weil in den Delphi-Bibliotheken von Office auf allen Entwicklungssystemen gleiche GUID's verwendet werden und diese Exe-Dateien auf jedem anderen System funktionieren, egal auf welchem PC kompiliert.

Nur bei der WordPerfect_Tlb-Datei scheint es sich anders zu verhalten.

Trotzdem lieben Dank und lieben Gruß,
Jochen


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