• Sábado 14 de Diciembre de 2024, 17:56

Autor Tema:  Proyecto Atl En Visual Studio  (Leído 1862 veces)

seba_500

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Proyecto Atl En Visual Studio
« en: Viernes 28 de Diciembre de 2007, 00:12 »
0
Hola,

Tengo (para modificar y trabajar con ellos) 2 proyectos q abro con Visual Studio 2005: uno es una librería ATL y el otro es un formulario q hace uso del primero.
Son open source con lo q ya traen mucho hecho, así como todas las propiedades del proyecto y la forma de construir la solución. Pero no tienen apenas documentación

La cosa es q quiero añadir una nueva función a la librería y he probado por el método bruto: seleccioné una de las funciones existentes, le di a buscar todas las referencias y fui añadiendo la nueva a continuación de ésta.
Sin embargo, compilo y genero solución pero cuando abro el 2º proyecto, Intellisense no muestra la nueva función y si hago uso de ella no puedo compilar porque la trata como un identificador no válido, vamos q no la reconoce.

¿A qué puede deberse? Supongo q a muchas cosas... es una cuestión demasiado abstracta :ouch: pero por ejemplo me podríais comentar, los q uséis ATL (es para generar librerías dinámicas... cosa muy de moda, no?), qué pasos seguís para crear nuevos métodos.

Gracias
"Si no puedes deslumbrar con tu inteligencia, desconcierta con gilipolleces"

seba_500

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Proyecto Atl En Visual Studio
« Respuesta #1 en: Viernes 28 de Diciembre de 2007, 00:26 »
0
Bueno, para ir adelantando un poco el trabajo. Decir q he visto q existen varios ficheros de cabeceras q agrupan a los métodos a modo de interfaces.

Así, los métodos q me interesan aparecen con estas instrucciones:
Código: Text
  1.  
  2. ...
  3. STDMETHOD(GetAccountSize)(LONG * size);
  4. ...
  5.  
  6.  


Y luego se declaran dichos interfaces en el fichero .idl del proyecto ATL
Código: Text
  1.  
  2. interface IOpenSIPStackCtl : IDispatch{
  3. ...
  4. [id(18), helpstring("method GetAccountSize")] HRESULT GetAccountSize([out,retval] LONG * size);
  5. ...  }
  6.  
  7.  


Hay algún misterio o es sencillo? Con el método bruto debería valer no?
La verdad es q llevo un monton de tiempo leyendo el extensisisisimo proyecto para entenderlo y poder meterle mano pero a veces creo q hubiera sido mejor no basarme en nada ya hecho si no ir aprendiendo mientras se hace, pero claro entonces los objetivos hubieran tenido q ser mucho menos ambiciosos.
"Si no puedes deslumbrar con tu inteligencia, desconcierta con gilipolleces"

seba_500

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Proyecto Atl En Visual Studio
« Respuesta #2 en: Jueves 10 de Enero de 2008, 14:41 »
0
Bueno, me contesto yo mismo  :rolleyes:

No hay q hacer nada especial pa añadir métodos a la librería dinámica ATL con lo q debería funcionar.

Pero las dlls son muy puñeteras y como esto es un proyecto muy grande, lleno de historias y el Visual Studio es muy tontito asi q cuando no falla una cosa falla la otra.
Así q tuve q hacer:

1. Desresgistrar y registrar la ATL desde el proyecto q hace uso de ella. Para ello Tools -> ActiveX Test Control Container -> File -> Register Controls

2. Generar "manualmente" los librerias envoltorio (wrappers) del proyecto en cuestion. En mi caso sólo se generaba la q lleva el mismo nombre q el proyecto pero con extension .dll. Así q mediante AxImp.exe dándole como parámetro la mencionada librería se generan otras 2.

3. Llevarme los 3 archivos .dll a la carpeta en la q se encuentra el project q hace uso de la librería dinamica.

4. Ya sólo queda disfrutar de todos los métodos q te brinda tu flamante dll   :hola:
"Si no puedes deslumbrar con tu inteligencia, desconcierta con gilipolleces"

seba_500

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Proyecto Atl En Visual Studio
« Respuesta #3 en: Jueves 10 de Enero de 2008, 14:45 »
0
Gracias, seba.
Me ha sido de gran ayuda  :lol:  :lol:  :lol:  :lol:
"Si no puedes deslumbrar con tu inteligencia, desconcierta con gilipolleces"