Migracion a HB: HB_SYMBOL_NAME_LEN

Migracion a HB: HB_SYMBOL_NAME_LEN

Postby jmansur » Thu Mar 19, 2009 1:42 pm

Estimados,

Estamos migrando todo nuestro sistema a harbour, y queria consultarlos por el uso de la opcion HB_SYMBOL_NAME_LEN ya que la configuramos en el hbsetup.h como esta a continuacion pero asi y todo el sienguente programa me tira error de que no encuentra la variable. Me falta compilar con algun otro parametro?

Saludosssssssssssssss

#undef HB_SYMBOL_NAME_LEN
#ifndef HB_SYMBOL_NAME_LEN
#define HB_SYMBOL_NAME_LEN 10
#endif

#include "fivewin.ch"

FUNCTION MAIN()
LOCAL CANTID_VENC := 100

MsgInfo( "Primer Mensaje(" + STR( CANTID_VENC ) + ")" )
MsgInfo( "Segundo Mensaje(" + STR( CANTID_VEN ) + ")" )

RETURN( .F. )
Lic. Jorge R. Mansur
jmansur
 
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Postby Lautaro » Sat Mar 21, 2009 2:34 am

Jorge,

¿ Recompilaste Harbour ?, esa directiva es para construir el compilador para que use 10 letras como largo del nombre, no para tu programa.


Atte.,

Lautaro Moreira
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Postby jmansur » Wed Mar 25, 2009 4:00 pm

Estiamdo Lautaro.

Intento generar el harbour pero me un error cuando compilo con HB_SYMBOL_NAME_LEN=10

source\rtl\checkbox.prg(132) Error F0002 Redefinition of procedure or function: 'CHECKBOX_S'

Estoy intentando ver donde porque no encuentro una funcion con ese nombre.
Gracias


MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
source\common\expropt1.c:
source\common\expropt2.c:
source\common\hbarch.c:
source\common\hbfsapi.c:
source\common\hbfopen.c:
source\common\hbgete.c:
source\common\hbwince.c:
source\common\hbhash.c:
source\common\hbdate.c:
source\common\hbstr.c:
source\common\hbtrace.c:
source\common\hbver.c:
source\common\hbverdsp.c:
source\common\reserved.c:
TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation
+obj\b32\expropt1.obj &
+obj\b32\expropt2.obj &
+obj\b32\hbarch.obj &
+obj\b32\hbfsapi.obj &
+obj\b32\hbfopen.obj &
+obj\b32\hbgete.obj &
+obj\b32\hbwince.obj &
+obj\b32\hbhash.obj &
+obj\b32\hbdate.obj &
+obj\b32\hbstr.obj &
+obj\b32\hbtrace.obj &
+obj\b32\hbver.obj &
+obj\b32\hbverdsp.obj &
+obj\b32\reserved.obj &
+
source\pp\hbpp.c:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Harbour Preprocessor 1.0.1
Copyright (c) 1999-2008, http://www.harbour-project.org/
obj\b32\pptable.c:
source\pp\ppcore.c:
source\pp\pplib.c:
source\pp\pplib2.c:
source\pp\pplib3.c:
TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation
+obj\b32\pptable.obj &
+obj\b32\ppcore.obj &
+obj\b32\pplib.obj &
+obj\b32\pplib2.obj &
+obj\b32\pplib3.obj &
+
source\compiler\hbmain.c:
1 archivos copiados.
1 archivos copiados.
obj\b32\harboury.c:
source\compiler\complex.c:
source\compiler\cmdcheck.c:
source\compiler\hbcomp.c:
source\compiler\hbcmplib.c:
source\compiler\hbdbginf.c:
source\compiler\hbdead.c:
source\compiler\hbstripl.c:
source\compiler\hbusage.c:
source\compiler\hbident.c:
source\compiler\hbgenerr.c:
source\compiler\hblbl.c:
source\compiler\hbpcode.c:
source\compiler\hbfunchk.c:
source\compiler\hbfix.c:
source\compiler\hbopt.c:
source\compiler\ppcomp.c:
source\compiler\genc.c:
source\compiler\gencc.c:
source\compiler\gencobj.c:
source\compiler\genhrb.c:
source\compiler\expropta.c:
source\compiler\exproptb.c:
TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation
+obj\b32\hbmain.obj &
+obj\b32\harboury.obj &
+obj\b32\complex.obj &
+obj\b32\cmdcheck.obj &
+obj\b32\hbcomp.obj &
+obj\b32\hbcmplib.obj &
+obj\b32\hbdbginf.obj &
+obj\b32\hbdead.obj &
+obj\b32\hbstripl.obj &
+obj\b32\hbusage.obj &
+obj\b32\hbident.obj &
+obj\b32\hbgenerr.obj &
+obj\b32\hblbl.obj &
+obj\b32\hbpcode.obj &
+obj\b32\hbfunchk.obj &
+obj\b32\hbfix.obj &
+obj\b32\hbopt.obj &
+obj\b32\ppcomp.obj &
+obj\b32\genc.obj &
+obj\b32\gencc.obj &
+obj\b32\gencobj.obj &
+obj\b32\genhrb.obj &
+obj\b32\expropta.obj &
+obj\b32\exproptb.obj &
+
source\main\harbour.c:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
source\vm\arrays.c:
source\vm\arrayshb.c:
source\vm\asort.c:
source\vm\break.c:
source\vm\classes.c:
source\vm\cmdarg.c:
source\vm\codebloc.c:
source\vm\debug.c:
source\vm\debugold.c:
source\vm\dynlibhb.c:
source\vm\dynsym.c:
source\vm\estack.c:
source\vm\eval.c:
source\vm\evalhb.c:
source\vm\extend.c:
source\vm\extrap.c:
source\vm\fm.c:
source\vm\garbage.c:
source\vm\hashes.c:
source\vm\hashfunc.c:
source\vm\hvm.c:
source\vm\initexit.c:
source\vm\initsymb.c:
source\vm\itemapi.c:
source\vm\macro.c:
source\vm\memvars.c:
source\vm\memvclip.c:
source\vm\pcount.c:
source\vm\proc.c:
source\vm\pvalue.c:
source\vm\runner.c:
source\vm\vm.c:
obj\b32\harbinit.c:
source\vm\mainstd.c:
source\vm\mainwin.c:
TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation
+obj\b32\arrays.obj &
+obj\b32\arrayshb.obj &
+obj\b32\asort.obj &
+obj\b32\break.obj &
+obj\b32\classes.obj &
+obj\b32\cmdarg.obj &
+obj\b32\codebloc.obj &
+obj\b32\debug.obj &
+obj\b32\debugold.obj &
+obj\b32\dynlibhb.obj &
+obj\b32\dynsym.obj &
+obj\b32\estack.obj &
+obj\b32\eval.obj &
+obj\b32\evalhb.obj &
+obj\b32\extend.obj &
+obj\b32\extrap.obj &
+obj\b32\fm.obj &
+obj\b32\garbage.obj &
+obj\b32\hashes.obj &
+obj\b32\hashfunc.obj &
+obj\b32\hvm.obj &
+obj\b32\initexit.obj &
+obj\b32\initsymb.obj &
+obj\b32\itemapi.obj &
+obj\b32\macro.obj &
+obj\b32\memvars.obj &
+obj\b32\memvclip.obj &
+obj\b32\pcount.obj &
+obj\b32\proc.obj &
+obj\b32\pvalue.obj &
+obj\b32\runner.obj &
+obj\b32\vm.obj &
+obj\b32\harbinit.obj &
+obj\b32\mainstd.obj &
+obj\b32\mainwin.obj &
+
source\rtl\abs.c:
source\rtl\accept.c:
source\rtl\ampm.c:
source\rtl\at.c:
source\rtl\binnum.c:
source\rtl\binnumx.c:
source\rtl\box.c:
source\rtl\cdpapi.c:
source\rtl\chrasc.c:
source\rtl\colorind.c:
source\rtl\console.c:
source\rtl\copyfile.c:
source\rtl\datec.c:
source\rtl\dates.c:
source\rtl\dateshb.c:
source\rtl\datesx.c:
source\rtl\defpath.c:
source\rtl\defpathu.c:
source\rtl\descend.c:
source\rtl\dirdrive.c:
source\rtl\direct.c:
source\rtl\diskspac.c:
source\rtl\disksphb.c:
source\rtl\do.c:
source\rtl\empty.c:
source\rtl\errorapi.c:
source\rtl\errorapu.c:
source\rtl\errorint.c:
source\rtl\file.c:
source\rtl\filehb.c:
source\rtl\filesys.c:
source\rtl\fkmax.c:
source\rtl\fnsplit.c:
source\rtl\fserror.c:
source\rtl\fssize.c:
source\rtl\fstemp.c:
source\rtl\gete.c:
source\rtl\gt.c:
source\rtl\gtapi.c:
source\rtl\gtchrmap.c:
source\rtl\gtapiu.c:
source\rtl\gtclip.c:
source\rtl\gtfunc.c:
source\rtl\gtkbstat.c:
source\rtl\gtkeycod.c:
source\rtl\gtsys.c:
source\rtl\gttone.c:
source\rtl\gx.c:
source\rtl\hardcr.c:
source\rtl\hbadler.c:
source\rtl\hbbit.c:
source\rtl\hbcrc.c:
source\rtl\hbhex.c:
source\rtl\hbmd5.c:
source\rtl\hbffind.c:
source\rtl\hbfile.c:
source\rtl\hbgtcore.c:
source\rtl\hbinet.c:
source\rtl\hbstrsh.c:
source\rtl\hbrandom.c:
source\rtl\hbregex.c:
source\rtl\hbregexc.c:
source\rtl\hbrunfun.c:
source\rtl\hbtoken.c:
source\rtl\hbzlib.c:
source\rtl\idle.c:
source\rtl\inkey.c:
source\rtl\inkeyapi.c:
source\rtl\is.c:
source\rtl\isprint.c:
source\rtl\itemseri.c:
source\rtl\langapi.c:
source\rtl\left.c:
source\rtl\len.c:
source\rtl\lennum.c:
source\rtl\math.c:
source\rtl\maxrow.c:
source\rtl\memofile.c:
source\rtl\minmax.c:
source\rtl\mlcfunc.c:
source\rtl\mod.c:
source\rtl\mouse53.c:
source\rtl\mouseapi.c:
source\rtl\mousex.c:
source\rtl\mtran.c:
source\rtl\natmsg.c:
source\rtl\natmsgu.c:
source\rtl\net.c:
source\rtl\oemansi.c:
source\rtl\oemansix.c:
source\rtl\oldbox.c:
source\rtl\oldclear.c:
source\rtl\pad.c:
source\rtl\padc.c:
source\rtl\padl.c:
source\rtl\padr.c:
source\rtl\philes.c:
source\rtl\philes53.c:
source\rtl\philesx.c:
source\rtl\rat.c:
source\rtl\replic.c:
source\rtl\right.c:
source\rtl\round.c:
source\rtl\run.c:
source\rtl\samples.c:
source\rtl\saverest.c:
source\rtl\scroll.c:
source\rtl\scrrow.c:
source\rtl\secondfs.c:
source\rtl\seconds.c:
source\rtl\set.c:
source\rtl\setcolor.c:
source\rtl\setcurs.c:
source\rtl\setkey.c:
source\rtl\setpos.c:
source\rtl\setposbs.c:
source\rtl\shadow.c:
source\rtl\shadowu.c:
source\rtl\soundex.c:
source\rtl\space.c:
source\rtl\spfiles.c:
source\rtl\str.c:
source\rtl\strpeek.c:
source\rtl\strcase.c:
source\rtl\strmatch.c:
source\rtl\strtran.c:
source\rtl\strzero.c:
source\rtl\stuff.c:
source\rtl\substr.c:
source\rtl\tone.c:
source\rtl\trace.c:
source\rtl\transfrm.c:
source\rtl\trim.c:
source\rtl\tscalara.c:
source\rtl\tscalarb.c:
source\rtl\tscalarc.c:
source\rtl\tscalard.c:
source\rtl\tscalarh.c:
source\rtl\tscalarl.c:
source\rtl\tscalarn.c:
source\rtl\tscalarp.c:
source\rtl\tscalars.c:
source\rtl\tscalaru.c:
source\rtl\type.c:
source\rtl\val.c:
source\rtl\valtostr.c:
source\rtl\valtype.c:
source\rtl\version.c:
source\rtl\word.c:
source\rtl\xhelp.c:
source\rtl\xsavescr.c:
obj\b32\achoice.c:
obj\b32\adir.c:
obj\b32\alert.c:
obj\b32\altd.c:
obj\b32\browdb.c:
obj\b32\browdbx.c:
obj\b32\browse.c:

source\rtl\checkbox.prg(132) Error F0002 Redefinition of procedure or function: 'CHECKBOX_S'

** error 1 ** deleting obj\b32\checkbox.obj
Lic. Jorge R. Mansur
jmansur
 
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Postby Antonio Linares » Wed Mar 25, 2009 9:22 pm

Jorge,

El problema viene porque el nombre del simbolo de un metodo se construye usando el nombre de la clase y el nombre del metodo, por lo que:

METHOD setFocus() CLASS CHECKBOX

se transforma en CHECKBOX_SETFOCUS

y

METHOD select( lState ) CLASS CHECKBOX

se transforma en CHECKBOX_SELECT

Como ves, los 10 primeros caracteres de ambos simbolos son los mismos, y de ahi viene el error al usar 10 caracteres como longitud de los simbolos, pues se repite el mismo nombre.

Como solucion, cambia en harbour checkbox.prg por un checkbox.prg que no tenga nada que genere error:

function CheckBox()

return nil

asi evitaras este error. Tendras que continuar compilando y ver si este error te aparece en otros PRGs. Mientras no sean PRGs "vitales" para Harbour, no habra problema en que lo soluciones de esa forma.
regards, saludos

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

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Postby Lautaro » Wed Mar 25, 2009 11:35 pm

Jorge,

¿ por que necesitas compilar con nombre de funciones de 10 caracteres ?,

Creo que es mas facil compilar directamente tus fuentes.


Atte.,

Lautaro Moreira
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Postby jmansur » Thu Mar 26, 2009 1:12 pm

Lautaro.

Nuestro problema es que estamos terminando de migrar nuestro ERP que comenzamos hace unos 20 años en CLIPPER a harbour.

Han pasado muchos programadores diferentes por lo que a veces algunos utilizaban mas de 10 caracteres para las variables con el fin de establecer una mayor comrpension en la lectura del codigo pero otros al saber que con 10 alcanzaban, llamaban a esas mismas variables con menos caracteres. Vicios y Errores de tantos años con el ERP.

Venimos corrigiendo gran cantidad de estas variables y nombres de funciones. pero muchas de nuestras reglas de negocios se encuentran como bloques en campos memos.

Creo que desarrollare un analizador sintactico que me trunque a 10 caracteres toda definicion de variables y funciones de mi ERP.

Un abrazo grandeee.

Jorge
Lic. Jorge R. Mansur
jmansur
 
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: gmart1 and 40 guests