Página 1 de 1

Comprendiendo los SubProyectos X215

Publicado: Mar Dic 28, 2010 4:47 pm
por Bingen Ugaldebere
A ver si el equipo Xailer me puede ayudar a entender el funcionamiento
de los subproyectos.
Primero he tomado un proyecto que antes generaba una LIB (Bisoft.Lib)
que luego enlazaba con TODAS mis aplicaciones y ahora la incluyo como
subproyecto. Esto funciona PERFECTO.
Pero he querido complicarlo un poco más.
He tomado la aplicación que estoy desarrollando y le he quitado todos
los PRGs que son comunes a todas las aplicaciones MySql, los cuales he
montado en un Proyecto separado llamado MySqlSubProyect.
Ahora vuelvo a mi aplicación a la que le adjunto el subproyecto
MySqlSubProyect y recompilo.
Primero me da errores por que MySqlSubProyect también usa funciones que
están en el subproyecto BiSoft. Vale pues entonces vuelvo a
MySqlSubProyect y le adjunto el subproyecto BiSoft.
De esta manera el subproyecto BiSoft queda añadido al subproyecto
MySqlSubProyect y a la aplicación principal.
Ver esquema en documento adjunto.
Es esto correcto ? o solo debo añadirla una vez y donde?
Por último las Clases que tengo definidas en el subproyecto
MySqlSubProyect no son accesibles desde la aplicación:
Error: Unresolved external '_HB_FUN_BRWSELECT' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJFORMCALIFICACIONES.OBJ
Error: Unresolved external '_HB_FUN_TFORMINPUT' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJPROFESORES_FORM.OBJ
Error: Unresolved external '_HB_FUN_TGOOGLEMAPS' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJPROFESORES_FORM.OBJ
Error: Unresolved external '_HB_FUN_FRREPORTMANAGER' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJFORMCALIFICACIONES.OBJ
Error: Unresolved external '_HB_FUN_TFRMABOUT' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJFRMMAIN.OBJ
Error: Unresolved external '_HB_FUN_TSQLSTRUCTURE' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJFRMMAIN.OBJ
Error: Unresolved external '_HB_FUN_TFLDMYSQLUSUARIOS' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJFRMMAIN.OBJ
Error: Unresolved external '_HB_FUN_TFORMFOLDER' referenced from
C:XDESARROLLOSPROGRAMASXMUSIKAOBJALUMNOS_FOLDER.OBJ
No se puede hacer esto?
Espero haberme explicado bien.
Gracias y salu2.
--

Comprendiendo los SubProyectos X215

Publicado: Mar Dic 28, 2010 4:55 pm
por jlalin
Bingen,
> Por último las Clases que tengo definidas en el subproyecto MySqlSubProyect
> no son accesibles desde la aplicación:
¿Los "unresolved external" no serán porque falta por añadir bisoft.lib en
Proyecto->Propiedades del proyecto->Librerí­as de la aplicación?
Saludos,
José Lalí­n

Comprendiendo los SubProyectos X215

Publicado: Mar Dic 28, 2010 5:00 pm
por Bingen Ugaldebere
> ¿Los "unresolved external" no serán porque falta por añadir bisoft.lib
> en Proyecto->Propiedades del proyecto->Librerí­as de la aplicación?
Si pero como explico al principio del mensaje, basandome en que a priori
he hecho la prueba de no adjuntar la LIB sino incluirla como un
subproyecto y ha funcionado, por que habrí­a de hacerlo después.
Posiblemente si incluyo esta Bisoft.Lib y me hago otra para
MySqlSubProyect.Lib y las enlazo, funcione a la primera, pero entonces
para que necesito los subproyectos???
Salu2.

Comprendiendo los SubProyectos X215

Publicado: Mar Dic 28, 2010 5:06 pm
por jlalin
Bingen,
> Posiblemente si incluyo esta Bisoft.Lib y me hago otra para
> MySqlSubProyect.Lib y las enlazo, funcione a la primera, pero entonces para
> que necesito los subproyectos???
Yo aún no los he usado a fondo pero en este caso, al hacer una modificación
en un subproyecto me imagino que el proyecto principal tendrá en cuenta los
cambios del subproyecto a la hora de enlazar.
Como te digo no es más que una suposición, a ver qué dice Jose F. al respecto.
Saludos,
José Lalí­n

Comprendiendo los SubProyectos X215

Publicado: Mar Dic 28, 2010 7:04 pm
por jfgimenez
Bingen,
> Primero me da errores por que MySqlSubProyect también usa funciones que
> están en el subproyecto BiSoft.
Intuyo que el proyecto MySqlSubProyect lo has creado de tipo "exe", no
"lib". Estoy seguro al 99% de que ese es el problema ;-)
En general, el funcionamiento del "multiproyecto" es el siguiente:
- Cada vez que se va a compilar, Xailer comprueba si el proyecto principal
tiene algún subproyecto. Si es así­, compila primero los subproyectos.
- Este proceso lo hace de forma recursiva, es decir, si un subproyecto
contiene a su vez subproyectos, estos últimos se compilan primero.
- Si un subproyecto es de tipo "lib", entonces se enlazará a su proyecto
"padre"; exactamente igual que si se añadiera la librerí­a directamente al
proyecto "padre".
- Otros procesos, como la "búsqueda en ficheros", se realizan sobre todos
los módulos de todos los proyectos y subproyectos, sin importar su nivel de
anidamiento.
- El "gestor de recursos" permite elegir cualquier fichero .rc de cualquier
subproyecto. No hemos querido limitar la selección de un recurso al proyecto
al que pertenezca el formulario que está siendo editado, con el fin de
permitir estructuras de proyectos más complejas. P.ej., se puede tener un
proyecto principal que sea un "exe", varios subproyectos de tipo "lib" y
otros de tipo "dll". En el caso de los módulos de las librerí­as, podrán
acceder sin problemas a los recursos del ejecutable, ya que en realidad
estarán enlazadas dentro de él. Y en el caso de las dll, también podrán
acceder a los recursos del ejecutable, mientras que éste podrá acceder a los
recursos de las dll siempre que estén cargadas en memoria.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Comprendiendo los SubProyectos X215

Publicado: Mié Dic 29, 2010 1:39 pm
por Bingen Ugaldebere
> Intuyo que el proyecto MySqlSubProyect lo has creado de tipo "exe", no
> "lib". Estoy seguro al 99% de que ese es el problema ;-)
Efectivamente, eso montaba el lí­o padre.
Ahora ya lo tengo resuelto y funcionando 100%
Va a dar mucho juego este tema, si señor.
Salu2 y gracias.