Programación General => C/C++ => Visual C++ => Mensaje iniciado por: seba_500 en Viernes 28 de Diciembre de 2007, 00:12
Título: Proyecto Atl En Visual Studio
Publicado por: seba_500 en Viernes 28 de Diciembre de 2007, 00:12
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
Título: Re: Proyecto Atl En Visual Studio
Publicado por: seba_500 en Viernes 28 de Diciembre de 2007, 00:26
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
...
STDMETHOD(GetAccountSize)(LONG * size);
...
Y luego se declaran dichos interfaces en el fichero .idl del proyecto ATL
Código: Text
interface IOpenSIPStackCtl : IDispatch{
...
[id(18), helpstring("method GetAccountSize")] HRESULT GetAccountSize([out,retval] LONG * size);
... }
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.
Título: Re: Proyecto Atl En Visual Studio
Publicado por: seba_500 en Jueves 10 de Enero de 2008, 14:41
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:
Título: Re: Proyecto Atl En Visual Studio
Publicado por: seba_500 en Jueves 10 de Enero de 2008, 14:45
Gracias, seba. Me ha sido de gran ayuda :lol: :lol: :lol: :lol: