Necesito desarrollar algunas clases que deberían ser ejecutables desde VB6 con C++ administrado (C++/CLI).Generar un ensamblado visible de COM desde C++ administrado (C++/CLI)
He desarrollado primero una muestra en C# y puedo usar el ensamble a través de COM sin problemas simplemente usando el ajuste "Registrar para interoperabilidad COM" y "Hacer visible el ensamblador COM" (y usando el atributo [ClassInterface (ClassInterfaceType) .AutoDual)] para poner a disposición los métodos en VB6.
Después de eso traté de traducir la muestra a C++/CLI sin éxito. He creado la misma clase con el atributo [ClassInterface (ClassInterfaceType.AutoDual)]. Establecí la configuración de "IDL incrustado" para especificar el TLB de salida pero el TLB no se genera automáticamente. Si utilizo la utilidad tlbexp sobre el archivo DLL generado, obtengo un tlb que se puede importar en VB6 pero cuando intento crear una instancia Obtengo un "componente de ActiveX no puede crear un objeto (429) "
¿Qué más necesito hacer con el proyecto para que funcione?
Gracias de antemano.
Estoy registrando el ensamblaje automáticamente con tlbexp, ¿verdad? La opción/tlb se informa como no reconocida por el compilador y el vinculador. ¿Está usted seguro de eso? –
No, tlbexp solo genera una biblioteca de tipos, nada se está registrando. La opción/tlb es para Regasm.exe, no para el compilador o el enlazador. Me desconcierta mucho que no lo hayas sacado de mi publicación. –
Tiene que ser algo relacionado con que aquí sea un poco tarde. He vuelto a leer tu publicación y estoy tan perplejo como tú :) –