No se controló COMException! – Interoperar objectos COM de VS6 a VS2005

No cabe la menor duda, que uno de nuestros trabajos mas desagradables es entender y resolver problemas de interaccion entre aplicaciones diseñadas y desarrolladas con diferentes tecnologias.


No hace mucho me toco ¡perder toda una mañana! Intentando interactuar con un ‘Component Object Model’  desarrollado en VB6.  Referenciar e instanciar el objeto esta claro que fue muy sencillo… sin embargo las sonrisas se iniciaron al intercambiar informacion entre ambos :


Los tipos no coinciden. (Excepción de HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))


Originalmente utilizaba typos ‘variant’ en .NET ‘object’, estaba tan convencido de que todo estaba bien que incluso no quise buscar ninguna solucion en la ‘base de conocimiento’ ni en la ayuda… dale que te pego, hasta darme cuenta!!


Por defecto cualquier al crear un nuevo proyecto en el ‘AssemblyInfo’ nos crea una entrada que por defecto!… POR DIOS!!  … es ‘False’. Se trata de saber que esa entrada, exactamente esa entrada debe estar en ‘True’ para disponer de la funcionalidad que requiere mi proyecto.


Mi disgusto viene despues de andar cuatro horas detrás de todo esto para entender que ademas de continuar siendo un novato despues de 30 años, mi torpeza tampoco mejora!

Espero que algun que otro sufridor con este problema, localice informacion en menos tiempo que yo.

<Assembly: ComVisible(False)> ‘POR DEFECTO (CON ERROR)
<Assembly: ComVisible(True)>  ‘La SOLUCION!


o Bien Seleccionando la opcion ‘Crear ensamblado visible a traves de COM’ en la ‘Informacion del Ensamblado’


Como siempre las cosas mas evidentes son las que nos quitan el sueño y nos hacen perder la mayor parte de nuestro preciado tiempo.


Saludotes!
Pep Lluis,

3 thoughts on “No se controló COMException! – Interoperar objectos COM de VS6 a VS2005”

  1. yo tengo ese mismo problema y cambio el False que me indicas por el True y me sigue saliendo esa excepcion, me dice tambien que puede que el archivo este dañado que lo abra y lo repare, cosa que es imposible porque un amigo esta implementando el mismo ejemplo con el mismo archivo y le va perfecto.

  2. Para poder entender un poquito mas tu problema deberias exponer con mas detalle la aplicacion que estas realizando y el componente que estas enlazando.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>