2010-04-15 10 views
1

J'ai une application native qui a un fichier .OCX qui doit être enregistré pour qu'il puisse être utilisé dans une application .NET.Enregistrement COM OCX - 2 DLL avec le même nom

Maintenant, il existe différentes versions de ce fichier .OCX sur la machine. Quelqu'un peut-il s'il vous plaît expliquer comment cela peut affecter l'enregistrement de cette nouvelle (mise à jour) enregistrement de fichier .OCX? Et comment mon application .NET sait-elle quel objet créer à partir de quel fichier .OCX?

+1

Voir ProgID. http://blogs.msdn.com/larryosterman/archive/2006/01/10/511279.aspx –

Répondre

0

Je crois que les enregistrements de classes COM incluent le chemin complet vers le "serveur" fournissant le composant COM. Si les deux versions du fichier .OCX ont des GUID de classe différents, il ne devrait pas y avoir de problèmes.

2

Les serveurs COM sont requis pour modifier leurs guids CLSID si leurs interfaces ne sont plus compatibles. Donc, si votre fournisseur l'a bien fait, vous devriez pouvoir enregistrer les deux et obtenir le bon lorsque vous utilisez la bonne référence dans votre projet.

Comme toute règle, celle-ci a souvent été violée et est probablement la raison pour laquelle vous avez commencé cette question en premier lieu. Le plan de sauvegarde consiste à utiliser COM sans registre, à écrire un manifeste et à l'ajouter à votre programme afin qu'il utilise toujours la copie locale de la DLL du serveur COM au lieu de celle qui a été enregistrée. Découvrez comment faire cela en recherchant sur Google "regfree COM", je vois beaucoup de hits pertinents et utiles en haut.