FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SOLUCIONADO. Cambio de hDataFile a pDataFile en HBRddDbf.h
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
SOLUCIONADO. Cambio de hDataFile a pDataFile en HBRddDbf.h
Posted: Fri Mar 20, 2009 07:37 PM
Hola a todos,

En el fichero HbRddDbf.h de Harbour, existe la declaraci贸n de la estructura _DBFAREA.

En la versi贸n 8.01 uno de sus 'valores' era declarado as铆:

FHANDLE hDataFile; /* Data file handle */

En la versi贸n 9.01 ese mismo 'valor' es declarado as铆:

PHB_FILE pDataFile; /* Data file handle */

Tengo una funci贸n que tiene este c贸digo:

Code (fw): Select all Collapse
HB_FUNC( DBFHDL )
{
聽 聽LPDBFAREA pArea = hb_rddGetCurrentWorkAreaPointer();
聽 聽if( pArea )
聽 聽 聽 hb_retni( pArea->hDataFile );
聽 聽else
聽 聽 聽 hb_retni( 0 );
}


Para que se pueda compilar con la versi贸n 9.01 que debo cambiar?

Ya ha visto que de entrada ha cambiado su nombre, de hDataFile a pDataFile. Con esto no es suficiente ya que al compilar da un error de:

Error E2342 c:\desarrol\treball\Ampa0903\C\HBFORCE.C 23: Type mismatch in parame
ter 'iNumber' (wanted 'int', got 'void *') in function HB_FUN_DBFHDL
*** 1 errors in Compile ***

Que debo cambiar en ese c贸digo para que pueda compilarlo y evidentemente funcione?

Saludos y gracias
Carlos G.

SOLUCION:
Parece ser que cambiando
hb_retni( pArea->hDataFile );
por
hb_retptr( pArea->pDataFile );
sera suficiente.

De nuevo un Saludo
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SOLUCIONADO. Cambio de hDataFile a pDataFile en HBRddDbf.h
Posted: Sat Mar 21, 2009 09:31 AM

Carlos,

La tendencia de Harbour es "proteger" todos los valores que no deban ser modificados directamente, y por eso casi todos los punteros se han pasado a void * : puntero a void. F铆jate que el mismo compilador te lo dice: (wanted 'int', got 'void '). "Queria 'int', y me diste 'void '), pues hb_retni() espera un 'int'.

La soluci贸n que has usado es correcta, pues ahora es un "puntero de Harbour" y hb_retptr() devuelve un "puntero de Harbour".

Ojo, habr铆a que comprobar si este mismo cambio se ha hecho tambien en xHarbour, 贸 ese c贸digo ser铆a incompatible con xHarbour.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: SOLUCIONADO. Cambio de hDataFile a pDataFile en HBRddDbf.h
Posted: Sat Mar 21, 2009 10:02 AM
Antonio Linares wrote:Carlos,

La tendencia de Harbour es "proteger" todos los valores que no deban ser modificados directamente, y por eso casi todos los punteros se han pasado a void * : puntero a void. F铆jate que el mismo compilador te lo dice: (wanted 'int', got 'void *'). "Queria 'int', y me diste 'void *'), pues hb_retni() espera un 'int'.

La soluci贸n que has usado es correcta, pues ahora es un "puntero de Harbour" y hb_retptr() devuelve un "puntero de Harbour".

Ojo, habr铆a que comprobar si este mismo cambio se ha hecho tambien en xHarbour, 贸 ese c贸digo ser铆a incompatible con xHarbour.


Gracias Antonio,

Tu aclaraci贸n me premite avanzar con seguridad. Nunca he trabajado con xHarbour (no lo tengo ni instalado), no puedo decirte si funcionar铆a.

Cambiando de tema, est谩 al caer la versi贸n 9.03? Como estar茅 unos meses sin actualizarme, quiero ver si puedo meterle mano a 'cVarName' de un golpe y enviarte los PRG y los CH.

Un saludo
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: SOLUCIONADO. Cambio de hDataFile a pDataFile en HBRddDbf.h
Posted: Sat Mar 21, 2009 09:17 PM

Carlos,

> Cambiando de tema, est谩 al caer la versi贸n 9.03?

Si, en solo unos dias vamos a publicarla :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion