Migracion a HB: HB_SYMBOL_NAME_LEN

Post Reply
jmansur
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina

Migracion a HB: HB_SYMBOL_NAME_LEN

Post by jmansur »

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
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Post by Lautaro »

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
jmansur
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Post by jmansur »

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

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Post by Antonio Linares »

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 _ 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
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Post by Lautaro »

Jorge,

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

Creo que es mas facil compilar directamente tus fuentes.


Atte.,

Lautaro Moreira
jmansur
Posts: 23
Joined: Thu Jul 20, 2006 12:46 am
Location: Argentina

Re: Migracion a HB: HB_SYMBOL_NAME_LEN

Post by jmansur »

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