Problemas de complementos al ejecutar programas VB en computadoras de otras personas
No todos los objetos exponen la interfaz de automatización. La causa y la resolución de este error son las siguientes:
Aunque la clase se encontró en la llamada de función GetObject o CreateObject especificada, no se mostró ninguna interfaz de programación. No se puede escribir código para controlar el comportamiento de un objeto a menos que tenga una interfaz que admita la automatización. Consulte la documentación de la aplicación que creó el objeto para conocer las limitaciones del uso de Automatización en esta clase de objeto.
Cambiaste el proyecto de .dll a .exe o de .exe a .dll. Si tiene un servidor .dll ya compilado y registrado y luego cambia el tipo de proyecto a
.exe y lo vuelve a compilar, no podrá crear tanto el .dll como el .exe ya que ya están registrados en El sistema. ¡Un objeto! Debe cancelar manualmente el registro del antiguo .dll y .exe del sistema. Debes cancelar manualmente el registro del antiguo .dll o .exe
para evitar este problema.
Este problema se produce debido a una combinación de compatibilidad del proyecto y al cambio del proyecto de .exe a .dll. En compatibilidad de proyectos, se guarda el CLSID en lugar del IID
. Dado que se conserva el CLSID
, la última clase registrada llevará dos servidores, un servidor en proceso y un servidor local. Al crear una instancia, se selecciona un servidor en proceso. Cuando se produce una consulta de interfaz, el .dll no admite IID porque es nuevo.