Nuevo en FWH - errores de enlazado

Post Reply
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Nuevo en FWH - errores de enlazado

Post by Manuel Aranda »

Por fín he conseguido compilar sin errores. Ahora viene el enlazado.
He obtenido errores tanto con Harbour como con xHarbour, la mayoria correspondiente a funciones para tratamiento de archivos ZIP. Como se soluciona esto ?
Reproduzco a continuación los errores obtenidos:

Al enlazar en Harbour obtengo los errores siguientes:

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_ZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPTYPE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPBLOCK' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPMSG' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ISZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETFIRSTINZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETNEXTINZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_CLOSEZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_UNZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETDESKTOPWINDOWS' referenced from C:\MAR\PRUEBA\AGRARIO.OBJ
Fin del proceso.
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland


Al hacerlo con xHarbour estos son los errores

- La librería gtwin.lib no está. Por lo que la he copiado de harbour. No se si esto es muy ortodoxo o traerá algún problema, pero el mensaje de error desaparece.

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_hb_gt_Init' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetScreenHeight' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetScreenWidth' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Exit' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_ExtendedKeySupport' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_ReadKey' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_AdjustPos' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Box' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_VertLine' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_HorizLine' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_PreExt' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_PostExt' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetPos' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetCursorStyle' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_IsColor' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_RectSize' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Replicate' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetBlink' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetBlink' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetMode' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Puts' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Scroll' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Tone' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Version' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_DispCount' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_DispEnd' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Suspend' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Resume' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Row' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_Col' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_DispBegin' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetClipboard' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetClipboardSize' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_ProcessMessages' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetClipboard' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_GetText' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_PutText' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_gt_SetAttribute' referenced from C:\XHARBOUR\LIB\RTL.LIB|gtapi
Error: Unresolved external '_hb_mouse_IsPresent' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_Show' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_Hide' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_Col' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_Row' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_SetPos' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_IsButtonPressed' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_CountButton' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_SetBounds' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_mouse_GetBounds' referenced from C:\XHARBOUR\LIB\RTL.LIB|mouseapi
Error: Unresolved external '_hb_gt_OutStd' referenced from C:\XHARBOUR\LIB\RTL.LIB|console
Error: Unresolved external '_hb_gt_OutErr' referenced from C:\XHARBOUR\LIB\RTL.LIB|console
Error: Unresolved external '_hb_gt_info' referenced from C:\XHARBOUR\LIB\RTL.LIB|maxrow
Error: Unresolved external '_HB_FUN_ZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPTYPE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPBLOCK' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ZIPMSG' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_ISZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETFIRSTINZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETNEXTINZIP' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_CLOSEZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_UNZIPFILE' referenced from C:\MAR\PRUEBA\UTILES.OBJ
Error: Unresolved external '_HB_FUN_GETDESKTOPWINDOWS' referenced from C:\MAR\PRUEBA\AGRARIO.OBJ
Fin del proceso.
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
** error 2 ** deleting C:\MAR\PRUEBA\AGRARIO.exe
Ha habido ERRORES al intentar Generar la Aplicacion
===============================================
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Obviando los errores anteriores (quitando las líneas de código correspondientes) para poder continuar con la obtención de un primer ejecutable me encuentro ahora con que el archivo de recursos no hay forma de incrustrarlo en el EXE. Anteriormente con FW trabajaba con una DLL de recursos que he convertido en archivo RC. El error es el siguiente:
=============
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Access violation. Link terminated.
Fin del proceso.
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
===============================================

También he tratado de convertir la DLL a 32 bit con el bat rc2dll32.bat y el error es el mismo : Fatal: Access violation. Link terminated.


Que puede estar ocurriendo ?
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manuel,

Las funciones de uso de ficheros ZIP de FiveWin 16 bits no están disponibles en 32 bits. Tienes que usar la librería hbzip.lib para xHarbour. La encuentras en las sección de utilidades de estos foros.

Tienes que enlazar GTGUI.lib en vez de GTWIN.lib, para evitar esos errores que te aparecen con xHarbour.

Prueba a comentar varias secciones de tu fichero RC con /* ...multiples líneas... */ y compila el RC, hasta que localices que parte del RC es la que ocasiona el problema con el compilador de recursos.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Bueno, después de pelear un par de dias he conseguido, ¡¡¡¡ por fín !!!! mi primer ejecutable, y aunque aún me queda que depurar algún código, los resultados hasta ahora pueden calificarse de satisfactorios.
Mi mayor problema, de momento, es el fichero RC de recursos. Siguiendo las indicaciones de Antonio comenté varias porciones del fichero RC y conseguí enlazarlo sin errores. Ahora el problema es que me faltan quince o veinte bitmap que están entre las lineas comentadas. ¿ Como los meto nuevamente en el fichero sin que se produzcan los errores?

Otro problema que he encontrado es con TFOLDER. Resulta que cambio TFOLDER del fichero RC por SysTabControl32 y va perfecto en varios controles menos en dos que al cambiarlos y enlazar vuelve a dar el error conocido de Fatal: Access violation. Link terminated.
Los vuelvo a poner como FOLDER y todo perfecto.
¿Porqué ocurre esto? He editado el fichero RC con varios procesadores de texto por si este fuera el problema pero persiste .

Un saludo,
Manuel Aranda
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manuel,

>
Ahora el problema es que me faltan quince o veinte bitmap que están entre las lineas comentadas. ¿ Como los meto nuevamente en el fichero sin que se produzcan los errores?
>

Los ficheros bitmaps los mantienes como ficheros externos ó están "incrustados" en el RC ? Mantenlos como ficheros externos. Usa:

Nombre BITMAP "fichero.bmp"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manuel,

>
Resulta que cambio TFOLDER del fichero RC por SysTabControl32 y va perfecto en varios controles menos en dos que al cambiarlos y enlazar vuelve a dar el error conocido de Fatal: Access violation. Link terminated.
>

Prueba a cambiar esos diálogos de posición dentro del fichero RC.

Da la impresión de que es un bug aleatorio del compilador de recursos de Borland.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Gracias Antonio. Voy avanzando.
Respecto a TFOLDER puede ser que sea lo que comentas, pues ya he podido arreglarlo. Aparentemente una tontería pues en los controles TFOLDER con problemas se me ocurrió escribir SYSTABSCONTROL32 con mayúscula y se arregló :)
En cuanto a usar los bitmap desde fichero no me convence mucho pero si no hay otra solución lo dejaré así. He podido generar una DLL de 32 bit y voy a ver si desde Pelles C (aún no he probado si esto puede hacerse) voy a intentar añadir los bitmap que faltan.

Un saludo,
Manuel Aranda
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manuel,

> En cuanto a usar los bitmap desde fichero no me convence mucho

Los ficheros bitmaps no se van a usar desde ficheros. El compilador de recursos los incrustará en el fichero RES resultante.

El problema es que Borland permite incluir los bitmaps dentro de los ficheros RC directamente y eso a veces puede causarle un problema al compilarlos.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Erick Almanza
Posts: 75
Joined: Mon Sep 11, 2006 3:52 pm

Dudas sobre la migracion de fw a fwh

Post by Erick Almanza »

Hola
Antonio

Tengo algunas dudas en cuanto a la migración de fw a fwh por favor respondame lo siguiente

1. Puedo utilizar la clase ssay de Ramon Aveldano en fwh
2. Por que la clase tsbrowse trae un archivo rmk para compilar y crear la librería si Rmake es una aplicación de clipper 5** ; Ademas resulta tan difícil crearla.
3. Tengo muchas aplicaciones que utilizan dll. Si tengo que pasar esa dll una a una a 32bits praticamente estoy haciendo todo de nuevo.
4. Puede enviarme un ejemplo sencillo de archivos .mak

Disculpe las preguntas pero es que me siento en cero

Saludos,

Erick Almanza
dicoms@cwpanama.net
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Erik,

> 1. Puedo utilizar la clase ssay de Ramon Aveldano en fwh

Solo tienes que recompilarla con Harbour ó xHarbour (el que estés usando). Si alguien la usa con FWH y te la puede facilitar, mejor.
>
2. Por que la clase tsbrowse trae un archivo rmk para compilar y crear la librería si Rmake es una aplicación de clipper 5** ; Ademas resulta tan difícil crearla.
>

Esas clases no son estandard de FWH, sino desarrolladas por usuarios. Es posible usar el rmake de Clipper, aunque vayas a construir para 32 bits.

>
3. Tengo muchas aplicaciones que utilizan dll. Si tengo que pasar esa dll una a una a 32bits praticamente estoy haciendo todo de nuevo.
>

Tienes que abrir la DLL con el Resources Workshop y gardar su contenido como fichero RC. Luego usa FWH\DLL\rc2dll32.bat para convertir tu fichero RC en una DLL de 32 bits.

> 4. Puede enviarme un ejemplo sencillo de archivos .mak

Revisa el directorio FWH\makes. Ahi tienes uno para Borland y otro para Microsoft, según uses uno u otro.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply