Question

Comment enregistrez-vous un objet COM écrit en C ++ managé comme étant SingleUse? Regasm ne semble pas avoir l'option. Je suppose que c’est peut-être aussi simple que de définir un attribut dans AssemblyInfo.cpp mais je ne le trouve pas.

J'ai écrit un fichier EXE ActiveX VB6 et il fonctionne comme je le souhaite. Chaque demande d'interface crée un nouveau serveur en cours d'exécution.

Dois-je recourir à l’enveloppement de mon COM C ++ géré dans VB6? Il doit y avoir un moyen plus facile.

Était-ce utile?

La solution

Il semble que les composants servis détiennent la clé de mon problème.

http://oreilly.com/catalog/comdotnetsvs/chapter/ch10.html

Une fois que je dérive de ServicedComponent dans l’espace de noms System.EnterpriseServices, effectuez un regsvcs sur la dll puis changez le regroupement dans dcomcnfg pour qu’il soit supérieur à un - tout fonctionne. Un autre problème est que le composant Managed C ++ en cours d'enregistrement soit compilé avec / clr: pure not just / clr. Je n'ai pas encore terminé le projet, mais les exemples de projets que j'ai construits en cours indiquent qu'il devrait fonctionner de cette façon. Je pense que je vais emballer ma solution Managed C ++ dans un assemblage C # ...

Maintenant que le projet est presque terminé, il vous reste une chose à faire: vous devez être sur un serveur O \ S pour que le pooling fonctionne.

Merci pour vos conseils ...

Autres conseils

Comment utiliser une ou plusieurs instances d'un objet OLE dans MFC à l'aide de Visual C ++

http://support.microsoft.com/kb/141154

Cela pourrait vous donner des indices:

Utilisation de contrôles gérés en tant que contrôles ActiveX
http://blogs.msdn.com/andreww/archive/2008/11/24/using-managed-controls-as-activex-controls.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top