Page 1 of 1

Error curioso

Posted: Wed Jun 11, 2008 11:27 am
by Pedro
Hola a todos

Estoy compilando tres módulos, en tres programas distintos, en los cuales utilizo la función GetSysMetrics, en dos de ellos no da error ninguno el Verce, y en uno da el error siguiente :
Error: Unresolved external '_HB_FUN_GETSYSMETRIC' referenced from C:\FILES\MANUAL\BRFAC\OBJ\GRID.OBJ

Decir que en los que no da error, no utilizo librerías externas a FWH, y en el que da error utilizo la lib TSBROWSE, TBTNGET y SBUTTON recompiladas con FWH y xHarbour 8.04.
El módulo GRID donde me tira el error es del ejemplo de facturación que nos ha proporcionado Antonio (ejemplo easikiosko)

Alguien sabe porqué tira el error?

Un saludo
Pedro

Posted: Wed Jun 11, 2008 12:11 pm
by karinha

Posted: Wed Jun 11, 2008 12:34 pm
by Pedro
Perdona Joao, pero en esos post, y a pesar de escaso brasilero, no dice nada de por qué no encuentra la función GetSysMetrics, cuando en otros dos módulos si la encuentra.
Esa función la usa el módulo GRID para las coordenadas de la ventana que va a pintar. La función es esta :

Code: Select all

Function AdjustWnd4( oNumero, nWidth, nHeight )


   Local nMaxWidth, nMaxHeight
   Local aPoint

   aPoint := { oNumero:nTop + oNumero:nHeight(), oNumero:nLeft }
   clientToScreen( oNumero:oWnd:hWnd, @aPoint )

  nMaxWidth  := GetSysMetrics(0) 
  nMaxHeight := GetSysMetrics(1)

   IF  aPoint[2] + nWidth > nMaxWidth
      aPoint[2] := nMaxWidth -  nWidth
   ENDIF

   IF  aPoint[1] + nHeight > nMaxHeight
      aPoint[1] := nMaxHeight - nHeight
   ENDIF

Return aPoint

Posted: Wed Jun 11, 2008 12:53 pm
by karinha
No te falta una de esta *.LIB?? Inclusa en el proyecto?

24/05/2004 21:55 9.759 BTNGET.LIB
08/01/2000 14:36 23.583 FILEXLS.LIB
24/05/2004 21:55 7.183 FWBMP.LIB
12/07/2003 18:49 240.640 SBROWSE.LIB
06/01/2005 19:50 144.896 SBUTTON.LIB
11/05/2002 16:59 75.264 TWBRW16.LIB

Posted: Wed Jun 11, 2008 1:10 pm
by karinha
Mira,

TSBROWSE.CH y
REPORT.CH

Busca por GRID.

Saludos.

Posted: Wed Jun 11, 2008 1:11 pm
by Pedro
karinha wrote:No te falta una de esta *.LIB?? Inclusa en el proyecto?

24/05/2004 21:55 9.759 BTNGET.LIB
08/01/2000 14:36 23.583 FILEXLS.LIB
24/05/2004 21:55 7.183 FWBMP.LIB
12/07/2003 18:49 240.640 SBROWSE.LIB
06/01/2005 19:50 144.896 SBUTTON.LIB
11/05/2002 16:59 75.264 TWBRW16.LIB
no uso en el módulo, FILEXLS, TWBRW16 (esta es para 16 y yo compilo a 32)
FWBMP, salvo que tenga mas módulos que el FWBMP.C (que ya lo incluyo en la lib SBUTON y TSBROWSE) tampoco la uso.
Es más, ninguna de esas librerias las uso en los otros dos módulos y no me tira el error.

Un saludo
Pedro

Posted: Wed Jun 11, 2008 2:33 pm
by Antonio Linares
Pedro,

La función termina en "S":

GETSYSMETRICS()

revisa tu código, gracias

Posted: Wed Jun 11, 2008 2:52 pm
by Pedro
Pues si Antonio, termina en S, arriba veras la función donde se llama a GetSysMetrics.
Lo curioso es que en los dos módulos de otros tantos programas donde llamo a esa funcion, solo tengo el include a Fivewin y a menu.ch.
En cambio en este módulo, que es de los ejemplos que tu has puesto a disposicion de los que se bajen la version de evaluacion, estan los includes a FIVEWIN, TSBROWSE, TSBUTTON y BTNGET .
Solo he encontrado referencia a GetSysMetrics en WINTEN.H, (de momento) aun no he visto FWBMP.C lo demas ya lo mirado todo.

Un saludo
Pedro

Posted: Wed Jun 11, 2008 3:11 pm
by Antonio Linares
La llamada a la funcion sin "s" viene del modulo grid.

Modifica ese modulo o anade esto:

function GetSysMetric( n )

return GetSysMetrics( n )

Posted: Wed Jun 11, 2008 3:14 pm
by Pedro
Antonio Linares wrote:La llamada a la funcion sin "s" viene del modulo grid.

Modifica ese modulo o anade esto:

function GetSysMetric( n )

return GetSysMetrics( n )
Gracias Antonio, acabo de verlo.
No buscaba en esa parte del programa, si no mas bien donde se buscaban los parámetros de creacion de la ventana/dialogo.

Mis disculpas, por no haberlo visto

Un saludo
Pedro