Nueva versi
Publicado: Mar Oct 17, 2006 7:36 pm
José Luis,
> Este trozo de código lo tengo en mi aplicación desde hace tiempo:
>
> CLASS tdbfDATASET FROM xdbfDATASET
> METHOD dbCreate( aStruc)
> ENDCLASS
>
> METHOD dbCreate( aStruc ) CLASS tdbfDataset
> dbCreate(::cName, aStruc)
> RETURN NIL
>
>
> Ahora, la utilizar el método dbCreate de dbfDataset me dice que no existe.
> ¿Ha cambiado algo? He probado a cambiar el nombre al método, pero tambien
> me dice que no existe. ¿Puede ser que ese código que lo tengo en otro
> proyecto que genera una lib y lo añado al proyecto principial ahora no sea
> añadido al ejecutable?
Podría tratarse del mismo problema que has tenido antes al meter el .obj en
el proyecto. El caso es que el enlazador de borland (ilink32.exe) tiene un
bug que hace que en algunas ocasiones ignore completamente el orden de los
módulos al enlazar, de forma que cuando coinciden 2 módulos con el mismo
nombre en vez de enlazar el que se encuentre en un .obj o en la primera
librería lo que hace es enlazar el último.
En este caso, es posible que esté enlazando la clase vacía de xailer.lib en
vez de la tuya. Cuando me ha pasado, la única forma que he tenido de
solucionarlo ha sido provocar algún cambio en el código que tiene que
enlazar; p.ej. añadiendo o quitando módulos al programa, o cosas así. Prueba
a añadir ese mismo módulo de la librería (el .prg) directamente en tu
programa.
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Este trozo de código lo tengo en mi aplicación desde hace tiempo:
>
> CLASS tdbfDATASET FROM xdbfDATASET
> METHOD dbCreate( aStruc)
> ENDCLASS
>
> METHOD dbCreate( aStruc ) CLASS tdbfDataset
> dbCreate(::cName, aStruc)
> RETURN NIL
>
>
> Ahora, la utilizar el método dbCreate de dbfDataset me dice que no existe.
> ¿Ha cambiado algo? He probado a cambiar el nombre al método, pero tambien
> me dice que no existe. ¿Puede ser que ese código que lo tengo en otro
> proyecto que genera una lib y lo añado al proyecto principial ahora no sea
> añadido al ejecutable?
Podría tratarse del mismo problema que has tenido antes al meter el .obj en
el proyecto. El caso es que el enlazador de borland (ilink32.exe) tiene un
bug que hace que en algunas ocasiones ignore completamente el orden de los
módulos al enlazar, de forma que cuando coinciden 2 módulos con el mismo
nombre en vez de enlazar el que se encuentre en un .obj o en la primera
librería lo que hace es enlazar el último.
En este caso, es posible que esté enlazando la clase vacía de xailer.lib en
vez de la tuya. Cuando me ha pasado, la única forma que he tenido de
solucionarlo ha sido provocar algún cambio en el código que tiene que
enlazar; p.ej. añadiendo o quitando módulos al programa, o cosas así. Prueba
a añadir ese mismo módulo de la librería (el .prg) directamente en tu
programa.
--
Un saludo,
José F. Giménez
http://www.xailer.com