Behebung der Ausnahme „Nicht registrierte Klasse“ in COM-Anwendungen
Beim Erstellen einer Instanz einer COM-Klasse ist ein Fehler aufgetreten: „Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))“. Diese Ausnahme weist darauf hin, dass die Ziel-COM-Klasse nicht ordnungsgemäß im System registriert ist.
Fehlerbehebung:
Um dieses Problem zu beheben, befolgen Sie bitte diese Schritte:
COM-Komponente neu installieren: Deinstallieren Sie die COM-Komponente, die mit der Klasse verknüpft ist, die Sie instanziieren möchten, und installieren Sie sie erneut. Dadurch wird sichergestellt, dass die erforderlichen Registrierungsschlüssel korrekt registriert werden.
Stellen Sie sicher, dass die Assembly die richtige Architektur hat: Stellen Sie sicher, dass alle Assemblys, auf die die Anwendung verweist, für dieselbe Architektur kompiliert sind. Wenn Sie eine 32-Bit-Anwendung anstreben, müssen alle Assemblys für 32-Bit kompiliert werden. Wenn Sie eine 64-Bit-Anwendung anstreben, müssen alle Assemblys für 64-Bit kompiliert werden.
COM-Klassen manuell registrieren: Wenn das Problem durch eine Neuinstallation der COM-Komponenten nicht behoben wird, können Sie das Dienstprogramm regsvr32 verwenden, um die COM-Klassen manuell zu registrieren. Öffnen Sie eine Eingabeaufforderung als Administrator und führen Sie den folgenden Befehl aus:
<code>regsvr32 <COM文件路径></code>
Ersetzen Sie <COM文件路径>
durch den vollständigen Pfad zur COM-Datei (.dll oder .ocx), die Sie registrieren möchten.
Registrierungsberechtigungen aktualisieren: Stellen Sie sicher, dass der Registrierungsschlüssel für die COM-Klasse über die entsprechenden Berechtigungen verfügt. Navigieren Sie zum folgenden Registrierungsschlüssel:
<code>HKEY_CLASSES_ROOT\<ProgID></code>
wobei <ProgID>
die Programmkennung (ProgID) der COM-Klasse ist. Gewähren Sie Ihrem Konto die erforderlichen Berechtigungen zum Lesen, Schreiben und Erstellen von Unterschlüsseln in diesem Registrierungsschlüssel.
Indem Sie diese Schritte ausführen, können Sie die Ausnahme „Klasse nicht registriert“ in Ihrer COM-Anwendung beheben und erfolgreich eine Instanz der COM-Klasse erstellen.
Das obige ist der detaillierte Inhalt vonWie behebt man die Ausnahme „Klasse nicht registriert' in COM-Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!