Error curioso

Post Reply
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Error curioso

Post 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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post 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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post 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
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

Mira,

TSBROWSE.CH y
REPORT.CH

Busca por GRID.

Saludos.
João Santos - São Paulo - Brasil
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pedro,

La función termina en "S":

GETSYSMETRICS()

revisa tu código, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post 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
Post Reply