Maison >développement back-end >C++ >Comment résoudre l'exception COM « Classe non enregistrée » (0x80040154) ?

Comment résoudre l'exception COM « Classe non enregistrée » (0x80040154) ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-14 11:52:42789parcourir

How to Solve

Résolution de l'exception COM « Classe non enregistrée »

Lors de l'instanciation d'une classe COM, vous pouvez rencontrer l'erreur :

<code>Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))</code>

Cela signifie que la classe COM utilisée par votre code n'est pas correctement enregistrée sur votre système. Voici comment y remédier :

1. Alignement de l'architecture :

Confirmez que tous vos assemblages sont construits pour l'architecture système correcte. Si l'erreur se produit dans un environnement 64 bits, assurez-vous que vos assemblys sont compilés pour x64. La reconstruction de votre solution pour x86 pourrait résoudre le problème.

2. Réenregistrez le composant COM :

Si l'architecture n'est pas le problème, essayez de réinstaller le composant COM référencé dans votre code. Les informations du programme d'installation ou du registre des composants COM se trouvent généralement dans le programme d'installation de Microsoft Visual Studio Tools pour Office ou dans le registre Windows (sous HKCR\CLSID).

Techniques utiles :

  • Éditeur de registre de Visual Studio : Visual Studio comprend un éditeur de registre pour examiner et ajuster les paramètres d'enregistrement COM.
  • Utilitaire Regasm.exe : L'utilitaire Windows RegAsm permet l'enregistrement et la désinscription manuels des classes COM.
  • Activation des applications 32 bits : Dans les environnements 64 bits, assurez-vous que la prise en charge des applications 32 bits est activée en définissant la clé de registre Enable32BitApplications sur 1 (située à HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows).

En suivant ces étapes, vous pouvez diagnostiquer et résoudre efficacement les exceptions d'enregistrement COM, garantissant ainsi que votre application s'exécute sans interruption.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn