FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MIGRACION DE XHARBOUR A HARBOUR
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 10:28 AM

Siguiendo las recomendaciones, me he decidido a probar cambiar una de mis aplicaciones que corre en xHarbour+FWH a Harbour+FWH.

Con xHarbour no tengo ning煤n problema.

1) He compilado mi librer铆a privada, sin problemas.

2) He a帽adido a los ficheros fivewin.ch y winapi.ch mis definiciones personales.

3) Trabajo con xEdit y simplemente he tenido que cambiar en el ambiente FIVEWIN el compilador de xHarbour a Harbour, cambiando los directorios.

4) Mi compilador es el antiguo BCC55.

Al compilar he visto que la funci贸n AT() en Harbour es exactamente igual que en Clipper y no tiene los dos par谩metros extendidos de xHarbour nStart y nEnd,me imagino que se podr铆a sustituir con un substring:

Actualmente: nFinPoint := AT("-", cCalle, 8 ) cambiar a nFinPoint := AT("-", SUBS(cCalle, 8 ) )
驴Hay otra soluci贸n?

Por otra parte veo que no admite el caracter | en el siguiente c贸digo:
STYLE CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT

驴Alguna idea?

Un saludo



Manuel
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 12:05 PM

hb_At( <cSearch>, <cString>, [<nStart>], [<nEnd>] ) --> nPos

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 01:51 PM

Manuel,

> STYLE CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT

Puedes usar la funci贸n nOr() de FWH:

STYLE nOr( CBS_DROPDOWNLIST, CBS_NOINTEGRALHEIGHT )

Ya te falta muy poco y ver谩s que bien funciona Harbour :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 03:15 PM

Muchas gracias Antonio y Paquito,

Con la funci贸n STR() mas de lo mismo. xHarbour tiene un cuarto par谩metro l贸gico que si es true, hace un LTRIM().

Estoy usando como manual de Harbour el de la web http://harbour.github.io/doc/index.html que es un poco inoperativo, porque cuesta buscar cada uno de los comandos. 驴Tiene Harbour otro tipo de manual, donde sea mas f谩cil leer las funciones que tiene y sus especificaciones?

Un saludo



Manuel
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 03:51 PM
Manuel,

En http://www.harbourdoc.com.br/ no he visto equivalente al Str() de xHarbour... no se si en el Manual de Harbour de Giovanni pondra algo... tb. hbIde de Pritpal Bedi tambi茅n tiene un manual de Harbour.... Alexander Kresin tambi茅n tiene un manual http://www.kresin.ru/en/


Mi parecer es el siguiente: la sobrecarga de parametros algunas veces no me gusta... puede ser el caso del Str() de xHarbour.
Lo que yo en tu caso para tener identificados TODOS los casos de cocnversion seria hacer unos translates de conversion y asi tenerlos todos
identificados para un mejor mantenimiento del programa. Adem谩s, mejorando un poquito podr谩s conservar la compatibilidad con xHarbour... que viene muy bien al menos durante el per铆odo que dure la conversi贸n hasta hacerla completa de Harbour. Y por si fuera poco, el .ch ser谩 un recopilatorio de las transformaciones que se pueden hacer y que podremos completar y compartir entre todos....

Code (fw): Select all Collapse
// x2h.ch
// xHarbour to Harbour translation
#ifdef __XHARBOUR__
   #Translate X2H_STR(<x1>, <x2>, <x3>[, <x4>]) => Str(<x1>, <x2>, <x3>, <x4> )
   #Translate X2H_AT(.....................

#else
   #Translate X2H_STR(<x1>, <x2>, <x3>[, <x4>]) => If(<.x4.> [.and. <x4>], LTrim(Str(<x1>, <x2>, <x3>)), Str(<x1>, <x2>, <x3>) )
   #Translate X2H_AT(.....................
#endif

// Ejemplo de uso...
FUNCTION Main()
c:= X2H_STR(10, 5, 2, .t.)
RETURN NIL

Saludos
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 08:00 PM

Muchas gracias

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 09:10 PM
Manuel,

Aqui tienes una copia de la documentaci贸n de Harbour, que colgamos en nuestro servidor para asi tenerla a mano:

http://www.fivetechsoft.com/harbour-docs/harbour-reference-guide.htm

En cuanto a las funciones que comentas, puedes hacer como te indica Paco, 贸 simplemente crearte una sencillas funciones que te proporcionen la funcionalidad extra que necesites. Yo siempre he sido contrario a usar capacidades "propias" de xHarbour, para asi tener la libertad de construir con Harbour 贸 xHarbour (puesto que soportamos ambos). Pero ya ver谩s que son unos cambios m铆nimos que podr谩s solucionar facilmente :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Mon Jun 23, 2014 09:37 PM
Al compilar me da ahora tres errores:


Error: Unresolved external '_HB_FUN_HB_GT_GUI_DEFAULT' referenced from F:\FWH2012\LIB\FIVEH.LIB|ERRSYSW

Error: Unresolved external '_hb_gcAlloc' referenced from F:\FWH2012\LIB\DOLPHIN.LIB|function

Error: Unresolved external '_hb_retclenAdopt' referenced from F:\FWH2012\LIB\DOLPHIN.LIB|function

Respecto a Dolphin, he compilado las fuentes con el setenvh.bat para Harbour y creado la nueva lib.

Parece que ya queda menos.

Estas son las librerias del proyecto:

<Library Filename="F:\fwh2012\lib\FiveH.lib" Link="Y"/>
<Library Filename="F:\fwh2012\lib\FiveHC.lib" Link="Y"/>
<Library Filename="F:\fwh2012\lib\dolphin.lib" Link="Y"/>
<Library Filename="F:\fwh2012\lib\libmysql.lib" Link="Y"/>
<Library Filename="[harbour]xhb.lib" Link="Y"/>
<Library Filename="[harbour]hbrtl.lib" Link="Y"/>
<Library Filename="[harbour]hbvm.lib" Link="Y"/>
<Library Filename="[harbour]gtwin.lib" Link="Y"/>
<Library Filename="[harbour]hblang.lib" Link="Y"/>
<Library Filename="[harbour]hbmacro.lib" Link="Y"/>
<Library Filename="[harbour]hbcommon.lib" Link="Y"/>
<Library Filename="[harbour]hbpp.lib" Link="Y"/>
<Library Filename="[harbour]hbcpage.lib" Link="Y"/>
<Library Filename="[harbour]hbdebug.lib" Link="Y"/>
<Library Filename="[harbour]hbrdd.lib" Link="Y"/>
<Library Filename="[harbour]rddntx.lib" Link="Y"/>
<Library Filename="[harbour]hbwin.lib" Link="Y"/>
<Library Filename="[harbour]hbcplr.lib" Link="Y"/>
<Library Filename="[harbour]rddcdx.lib" Link="Y"/>
<Library Filename="[harbour]rddfpt.lib" Link="Y"/>
<Library Filename="[harbour]hbsix.lib" Link="Y"/>
<Library Filename="[harbour]hbziparc.lib" Link="Y"/>
<Library Filename="[harbour]hbmzip.lib" Link="Y"/>
<Library Filename="[harbour]hbzlib.lib" Link="Y"/>
<Library Filename="[harbour]minizip.lib" Link="Y"/>
<Library Filename="[harbour]png.lib" Link="Y"/>
<Library Filename="[harbour]hbct.lib" Link="Y"/>
<Library Filename="[harbour]hbpcre.lib" Link="Y"/>
<Library Filename="[bcc]c0w32.obj" Link="Y"/>
<Library Filename="[bcc]psdk\odbc32.lib" Link="Y"/>
<Library Filename="[bcc]psdk\msimg32.lib" Link="Y"/>
<Library Filename="[bcc]cw32.lib" Link="Y"/>
<Library Filename="[bcc]import32.lib" Link="Y"/>
<Library Filename="[bcc]wininet.lib" Link="Y"/>
<Library Filename="[bcc]PSDK\psapi.lib" Link="Y"/>
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Tue Jun 24, 2014 10:21 AM

Manuel,

Revisa las librerias que enlazamos desde samples\buildh.bat

Que herramienta estas usando para construir tus EXEs ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Tue Jun 24, 2014 02:15 PM
Antonio Linares wrote:
Revisa las librerias que enlazamos desde samples\buildh.bat
Que herramienta estas usando para construir tus EXEs ?


Gracias Antonio por contestar.

Me faltaba la libreria gtwin
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR (SOLUCIONADO)
Posted: Tue Jun 24, 2014 02:35 PM

Manuel,

Est谩s enlazando gtgui.lib adem谩s de gtwin.lib ?

Ser铆a muy conveniente que comiences a usar BCC582. BCC55 es bastante antiguo ya y le faltan cosas importantes que estan en BCC582.

Env铆ame un email y te indico desde donde puedes descargarlo (Embarcadero).

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Tue Jun 24, 2014 07:44 PM

Actualizado el compilador a BCC582.

Pero ahora sale un warning que antes no sal铆a con BCC55. Se trata de dos c贸digos en C de la libreria de Thefull Tscan:

Warning W8075 TSCAN.prg 495: Suspicious pointer conversion in function HB_FUN_TW_GETNEXTSOURCENAME
Warning W8075 TSCAN.prg 500: Suspicious pointer conversion in function HB_FUN_TW_GETDEFAULTSOURCENAME

Este es el c贸digo.

HB_FUNC( TW_GETNEXTSOURCENAME )
{
hb_retni( TWAIN_GetNextSourceName( hb_parc( 1 ) ) );
}

HB_FUNC( TW_GETDEFAULTSOURCENAME )
{
hb_retni( TWAIN_GetDefaultSourceName( hb_parc( 1 ) ));
}

驴Pudiera ser que la librer铆a de TheFull estuviera compilada con BCC55?

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Tue Jun 24, 2014 09:22 PM
Manuel,

Esos warnings se deben posiblemente a que BCC582 funciona mejor que BCC55, puesto que la declaraci贸n de esa funci贸n es:

BOOL EZTAPI TWAIN_GetNextSourceName(LPSTR pzName);

luego el c贸digo deber铆a ser:
Code (fw): Select all Collapse
HB_FUNC( TW_GETNEXTSOURCENAME )
{
   hb_retl( TWAIN_GetNextSourceName( hb_parc( 1 ) ) );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Tue Jun 24, 2014 09:24 PM
E igual para la otra funci贸n:

BOOL EZTAPI TWAIN_GetDefaultSourceName(LPSTR pzName);

luego deber铆a ser:
Code (fw): Select all Collapse
HB_FUNC( TW_GETDEFAULTSOURCENAME )
{
   hb_retl( TWAIN_GetDefaultSourceName( hb_parc( 1 ) ) );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: MIGRACION DE XHARBOUR A HARBOUR
Posted: Wed Jun 25, 2014 06:13 AM

Buenos dias Antonio,

Realizado los cambios, siguen los mismos warning.

Un saludo



Manuel