Compilar y Enlazar con xHarbour

Compilar y Enlazar con xHarbour

Postby LuisPonce » Sun Sep 27, 2009 11:20 pm

Hola Manuel, y amigos del Foro, estoy intentando migrar a 32bits con el xHarbour :

Vi el Make para borland C:\FWH\MAKES\BORMAKE hice los cambios a partir del ejemplo test.rmk para compilar mi aplicacion :

#Borland make sample, (c) FiveTech Software 2005

HBDIR=c:\xHarbour
BCDIR=c:\bcc55
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH = $(FWDIR)\include;$(HBDIR)\include
.path.C = .\
.path.rc = .\

#Borland make sample, (c) FiveTech Software 2005

HBDIR=c:\xHarbour
BCDIR=c:\bcc55
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH = $(FWDIR)\include;$(HBDIR)\include
.path.C = .\
.path.rc = .\

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG = \
FW-VTA.PRG \
VTA0000.PRG \
VTA0100.PRG \
VTA0150.PRG \
VTA0199.PRG \
VTA0200.PRG \
VTA0299.PRG \
VTA0300.PRG \
VTA0340.PRG \
VTA0400.PRG \
VTA0500.PRG \
VTA0550.PRG \
VTA0600.PRG \
VTA0700.PRG \
VTA0710.PRG \
VTA0800.PRG \
VTA0900.PRG \
VTA0800.PRG \
VTA0998.PRG \
VTA0999.PRG

LIB= \
FILEXLS.LIB


PROJECT : FW-VTA.exe

FW-VTA.exe : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ) FW-VTA.res
echo off
echo $(BCDIR)\lib\c0w32.obj + > b32.bc
echo obj\FW-VTA.obj obj\VTA0000.obj obj\VTA0100.obj obj\VTA0150.obj obj\VTA0199.obj obj\VTA0200.obj obj\VTA0299.obj obj\VTA0300.obj obj\VTA0340.obj obj\VTA0400.obj obj\VTA0500.obj obj\VTA0550.obj obj\VTA0600.obj obj\VTA0700.obj obj\VTA0710.obj obj\VTA0800.obj obj\VTA0900.obj obj\VTA0998.obj obj\VTA0999.obj, + >> b32.bc
echo FW-VTA.exe, + >> b32.bc
echo FW-VTA.map, + >> b32.bc
echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
echo $(HBDIR)\lib\rtl.lib + >> b32.bc
echo $(HBDIR)\lib\vm.lib + >> b32.bc
echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
echo $(HBDIR)\lib\lang.lib + >> b32.bc
echo $(HBDIR)\lib\macro.lib + >> b32.bc
echo $(HBDIR)\lib\rdd.lib + >> b32.bc
echo $(HBDIR)\lib\dbfntx.lib + >> b32.bc
echo $(HBDIR)\lib\dbfcdx.lib + >> b32.bc
echo $(HBDIR)\lib\dbffpt.lib + >> b32.bc
echo $(HBDIR)\lib\hbsix.lib + >> b32.bc
echo $(HBDIR)\lib\debug.lib + >> b32.bc
echo $(HBDIR)\lib\common.lib + >> b32.bc
echo $(HBDIR)\lib\pp.lib + >> b32.bc
echo $(HBDIR)\lib\codepage.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo $(HBDIR)\lib\rddads.lib + >> b32.bc
rem echo $(HBDIR)\lib\Ace32.lib + >> b32.bc

echo $(BCDIR)\lib\cw32.lib + >> b32.bc
echo $(BCDIR)\lib\import32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\rasapi32.lib, >> b32.bc

IF EXIST FW-VTA.res echo FW-VTA.res >> b32.bc
$(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
del b32.bc

.PRG.OBJ:
$(HBDIR)\bin\harbour $< /L /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include
$(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c

.C.OBJ:
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
$(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
del tmp

FW-VTA.res : FW-VTA.rc
$(BCDIR)\bin\brc32.exe -r FW-VTA.rc

y eso que no estoy seguro de incluir las LIB's debajo de LIB= (uso la FILEXLS,SSAY,TDOSPRN,TGRAPH)
Ejecuto el Go.bat

if not exist obj md obj
c:\bcc55\bin\make -fFHVT2.rmk
y me sale una pila de errores,

Error : Unresolved External 'BH_FUN_ZIPTYPE' Referenced From C:\FWH\VTAS\VTA0100.PRG.....
varios errores de ese tipo cambiando 'BH_FUN_ZIPBLOCK', 'BH_FUN_ZIPMSG', 'BH_FUN_BOM', 'BH_FUN_TSSAY'
para terminar en un gran Fatal Access violation. Link Terminated
y te aseguro que no estoy violando nada, ya probe el Xmate,XEdit,BrMake buenazos por cierto pero no puedo generar el EXE, los ejemplos caminan muy bien, por que solo constan de un .PRG y cuando el proyecto contiene mas Prgs, deberia ser como el Blinker un .LNK y punto..... llevo dos dias en esto, agradeceria una ayudita.

Uso una Dll que ya pase a RC y con ayuda del RC2dll32 pase a DLL de 32bits, hay que hacer algun cambio a los fuentes, SetResources(...) o LoadLibrary() o alguna otra funcion o mandato ?

Entiendo que la mecanica es compilar con el xHarbour, generar los .C de alli generar los .OBJ creo que con el BCC32 y luego Linkar con el ILink32 ????

Gracias
Luis Ponce
User avatar
LuisPonce
 
Posts: 195
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU

Re: Compilar y Enlazar con xHarbour

Postby MarioG » Mon Sep 28, 2009 12:08 pm

Luis;
Los errores como:
Unresolved External 'BH_FUN_ZIPTYPE' Referenced From C:\FWH\VTAS\VTA0100.PRG

Se debe a que falta la lib HbZip, que es llamada desde VTA0100; idem para las demaas llmadas ZIP... (Podes incluir la lib o anular la llamada en el prg)
Las llamadas a TSSay; corresponden a la clase homologa de TSButton de Mauel Mercado
De igual manera con HB_FUN_BOM aunque desconozco esta lib.

Al generar la .dll de 32bits, no hace falta ningun tipo de cambio. La usas de la misma manera que en 16bist.
Solo tenes que tener en cuenta que: NO debe incluir ningun control Borland. Que el recurso Folder cambia por SysTabControl32
Y si te da algun error inersperado, ponelo en el foro. Puede haber algun otro control que tambien cambien, como el caso de Folder y, yo no lo use o ahora no recuerdo por cual cambia.

'todo cambio es traumático' :)
Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Compilar y Enlazar con xHarbour

Postby LuisPonce » Mon Sep 28, 2009 10:48 pm

Hola Mario

Muchas gracias por tu comentario, hice lo que me digiste pero la hbzip.lib existe algun cambio respecto a los zip's, tampoco la testzip de FWH\SAMPLES corre... no soluciono el punto, pero lo obvie por el momento, el resto Ok, pero CASI VEO LA LUZ a no ser por un error que me da :

Turbo Incremental Link 5.0 Cop......
Fatal Acces violation. Link Terminated


Sin nunguna explicacion mas... te paso el B32.bc, vi que el maestro Antonio, soluciono un problema similar en base a este file.

c:\bcc55\lib\c0w32.obj +
obj\FW-VTA.obj obj\VTA0000.obj obj\VTA0100.obj obj\VTA0150.obj obj\VTA0199.obj obj\VTA0200.obj obj\VTA0299.obj obj\VTA0300.obj obj\VTA0340.obj obj\VTA0400.obj obj\VTA0500.obj obj\VTA0550.obj obj\VTA0600.obj obj\VTA0800.obj obj\VTA0900.obj obj\VTA0998.obj obj\VTA0999.obj FWCALEN.obj, +
FW-VTA.exe, +
FW-VTA.map, +
c:\fwh\lib\FiveHx.lib c:\fwh\lib\FiveHC.lib +
c:\xHarbour\lib\rtl.lib +
c:\xHarbour\lib\vm.lib +
c:\xHarbour\lib\gtgui.lib +
c:\xHarbour\lib\lang.lib +
c:\xHarbour\lib\macro.lib +
c:\xHarbour\lib\rdd.lib +
c:\xHarbour\lib\dbfntx.lib +
c:\xHarbour\lib\dbfcdx.lib +
c:\xHarbour\lib\dbffpt.lib +
c:\xHarbour\lib\hbsix.lib +
c:\xHarbour\lib\debug.lib +
c:\xHarbour\lib\common.lib +
c:\xHarbour\lib\pp.lib +
c:\xHarbour\lib\codepage.lib +
c:\xHarbour\lib\pcrepos.lib +
c:\xHarbour\lib\CT.lib +
c:\xHarbour\lib\hbzip.lib +
c:\xHarbour\lib\FILEXLS.lib +
c:\xHarbour\lib\SSAY.lib +
c:\bcc55\lib\cw32.lib +
c:\bcc55\lib\import32.lib +
c:\bcc55\lib\psdk\odbc32.lib +
c:\bcc55\lib\psdk\nddeapi.lib +
c:\bcc55\lib\psdk\iphlpapi.lib +
c:\bcc55\lib\psdk\rasapi32.lib,
FW-VTA.res

De antemano Gracias

Att
Luis Ponce
User avatar
LuisPonce
 
Posts: 195
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU

Re: Compilar y Enlazar con xHarbour

Postby rolando » Tue Sep 29, 2009 1:35 am

Luis,

Cuando migré a FWH me fue increiblemente fácil usando VERCE que es un soft free de dos amigos de este foro (Juan Carlos Salinas Ojeda y William Morales).

Hasta hoy sigo usándolo (particularmente la versión 5). Te lo recomiendo.

Mandé el link para bajarlo a tu correo ya que aquí, no sé el motivo, pero no puedo pegarlo.

Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Compilar y Enlazar con xHarbour

Postby MarioG » Tue Sep 29, 2009 11:59 am

Luis;
Desconozco el motivo. Aunque en mis compilaciones pongo siempre las lib de terceros, previas a las de FWH
tal como el siguiente bat. Chequea un poco esta plantilla, que no me da problemas

echo %hdir%\3lib\HBTDBF.lib + >> b32.bc
echo %hdir%\3lib\TBtnGet.lib + >> b32.bc
echo %hdir%\3lib\TsBtn62.lib + >> b32.bc
echo %hdir%\3lib\Eagle\FileXLS.lib + >> b32.bc

echo %fwhdir%\lib\FiveHx.lib %fwhdir%\lib\FiveHC.lib + >> b32.bc

echo %hdir%\lib\bcc640.lib + >> b32.bc
echo %hdir%\lib\debug.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\gtgui.lib + >> b32.bc
echo %hdir%\lib\lang.lib + >> b32.bc
echo %hdir%\lib\macro.lib + >> b32.bc
echo %hdir%\lib\pp.lib + >> b32.bc
echo %hdir%\lib\rdd.lib + >> b32.bc
echo %hdir%\lib\dbfntx.lib + >> b32.bc
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\libmisc.lib + >> b32.bc
echo %hdir%\lib\ct.lib + >> b32.bc
echo %hdir%\lib\libnf.lib + >> b32.bc
echo %hdir%\lib\codepage.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc
echo %hdir%\lib\sixcdx.lib + >> b32.bc
echo %hdir%\lib\dbffpt.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\tip.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
echo %hdir%\lib\rddads.lib + >> b32.bc
echo %hdir%\3lib\Ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
rem echo %bcdir%\lib\psdk\odbc32.lib, >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib, >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: jair and 26 guests