Page 1 of 1

Primeros pasos con FWH7.07 y xH0997

Posted: Thu Aug 09, 2007 9:37 pm
by gsabattino
Hola a todos...

Hoy comencé a dar el salto desde FW2.4+xH0993 hacia FW7.07+xH0997.
Veo que _ han sido bastante significativos...

El script que hace referencia a las libs de xHarbour lo fuí cambiando por ensayo y error hasta que el linker dejo de dar errores por ese lado...
Luego a punta de cabezazos tuve que recompilar algunos fuentes en C puro por un error de una llamada a _hb_stack que se producía desde esos módulos...
Logré generar el módulo WBrwLine.obj, el cual es un componente de la clase TWBrowse de nuestro querido compañero D.Cecarrelli, pero sin que me dejara de dar un montón de mensajes de precaución por prototipos no definidos...
La clase tSysInfo de Patrick Mast me dio un error que no supe resolver y comente esas líneas (las copio al final)...
Por ultimo... luego de recompilar todo lo que son clases y componentes de terceros y los Prg's me encuentro que la aplicación de prueba no corre sino que solo abre una ventana de consola sin nada dentro...

Entonces...
Que me está faltanto??? o sobrando???
Será que me pueden facilitar un script para compilar fuentes en C puro y un script para el ILink32???

Para todo esto, aparte del BCC551, he estado utilizando la distribución de xHarbour 0.997 de FiveTechSoft.


De antemano... 1GB de Gracias por los comentarios.

Giancarlo J. Sabattino S.
Valencia, Venezuela


---------------------------------------------------------------
a continuación coloco _ que he implementado:

c:\BCC55\bin\BCC32.cfg:

-5
-d
-k-
-O1
-O2
-v-
-WC
-w-inl-
-6
-OS
-a8
-IC:\Bcc55\include;c:\xBase\xHarbour\0.997\Include;c:\xBase\FWH\Include
-LC:\Bcc55\lib;\xBase\xHarbour\0.997\Lib
-ljC:\Bcc55\lib;C:\Bcc55\lib\psdk


---------------------------------------------------------------
script para ILink32:

-aa -Tpe -s +
-I.\Obj32 +
-Lc:\xBase\xHARBOUR\0.997\LIB;C:\BCC55\LIB +
-j.\Obj32;C:\BCC55\LIB +
C:\BCC55\LIB\C0W32.OBJ +
Matric.OBJ +
Usuario.Obj +
MmtoGen.Obj +
Nominas.Obj +
Seguro.Obj +
CtlPagos.Obj +
Estadist.Obj +
Puentes.Obj +
Utils.OBJ +
tSysInfo.Obj +
tGet.OBJ +
Eagle.OBJ +
NetMngrW.OBJ +
PrnFnFW.Obj +
c:\xBase\FW\Clases\TWBrowse.HDC\17\Obj32\WBrowse.OBJ +
c:\xBase\FW\Clases\TWBrowse.HDC\17\Obj32\WBrwLine.OBJ +
c:\xBase\FWH\ObjxH0997\ErrSysW.OBJ +
c:\xBase\FWH\Obj32\ctcrypt.OBJ, +
.\LSG32.exe, +
.\Obj32\Matricula.map, +
c:\xBase\FWH\lib\FiveHc.lib +
c:\xBase\FWH\libxH0997\FivexH.lib +
c:\xBase\Eagle1\LibxH0997\Eagle1.Lib +
c:\xBase\Eagle1\Lib\Eagle1C.Lib +
c:\xBase\Eagle1\Lib\LibMySQL.Lib +
c:\BCC55\lib\psdk\odbc32.lib +
rtl.lib +
vm.lib +
common.lib +
gtwin.lib +
lang.lib +
macro.lib +
debug.lib +
rdd.lib +
dbfntx.lib +
dbfcdx.lib +
dbffpt.lib +
pp.lib +
hbsix.lib +
c:\bcc55\lib\CW32.LIB +
c:\bcc55\lib\IMPORT32.LIB,, +
.\Obj32\Matric.RES

---------------------------------------------------------------
los módulos en C puro los compilé asi:

c:\BCC55\bin\bcc32.exe -P- -c -tW -Ic:\xBase\FWH\include;c:\xBase\FWH\ObjxH0997\include -DHARBOUR_USE_WIN_GTAPI -DHB_COMPAT_C53 Modulo.c


---------------------------------------------------------------
Parte de la Clase tSysInfo de Pactrick Mast que tuve que comentar:

METHOD Memory( nMem ) Class TSystemInfo
Local nRetu

#ifdef __HARBOUR__
#pragma BEGINDUMP
#include "windows.h"
#pragma ENDDUMP

/* Comienza parte comentada
nRetu := HB_INLINE( nMem )
{
MEMORYSTATUS mst;
long nMem = hb_parnl(1);

mst.dwLength = sizeof( MEMORYSTATUS );
GlobalMemoryStatus( &mst );

switch( nMem )
{
case 1: hb_retnl( mst.dwTotalPhys / (1024*1024) ) ; break;
case 2: hb_retnl( mst.dwAvailPhys / (1024*1024) ) ; break;
case 3: hb_retnl( mst.dwTotalPageFile / (1024*1024) ) ; break;
case 4: hb_retnl( mst.dwAvailPageFile / (1024*1024) ) ; break;
case 5: hb_retnl( mst.dwTotalVirtual / (1024*1024) ) ; break;
case 6: hb_retnl( mst.dwAvailVirtual / (1024*1024) ) ; break;
default: hb_retnl( 0 ) ;
}
}

Finaliza parte comentada */
nRetu :=0
#else

Posted: Thu Aug 09, 2007 9:46 pm
by Antonio Linares
Giancarlo,

Tienes que usar GTGUI.lib en vez de GTWIN.lib

Posted: Thu Aug 09, 2007 9:48 pm
by Antonio Linares
> la aplicación de prueba no corre sino que solo abre una ventana de consola sin nada dentro...

Desplaza el contenido de esa ventana hacia abajo por si aparece un mensaje de error. Has mirado si se genera un error.log ?

Posted: Thu Aug 09, 2007 10:25 pm
by gsabattino
Antonio, efectivamente cambiando la librería ya funciona normal...

Muy Agradecido por la orientación...

Aun me quedan las inquietudes relacionadas con la cantidad de advertencias de prototipos no definidos que resulta de compilar el módulo WBrwLine.c, y el caso del segmento que tuve que comentar en la clase tSystemInfo.

Posted: Thu Aug 09, 2007 10:42 pm
by Antonio Linares
Que prototipos no definidos te aparecen ? De todas formas, mientras sean sólo warnings no tiene porque afectar a la ejecución de la aplicación.

En cuanto al segmento de código comentado, evita usar HB_INLINE( nMem ). Declara una función HB_FUNC() usando #pragma BEGINDUMP #pragma ENDDUMP (tienes muchos ejemplos en estos foros) y llámala desde ese método, en vez de usar HB_INLINE( nMem )

Posted: Thu Aug 09, 2007 11:11 pm
by gsabattino
Antonio... estas son las advertencias que se producen...

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
wbrwline.c:
Warning W8065 wbrwline.c 314: Call to function 'hb_itemType' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 314: Call to function 'hb_itemGetL' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 317: Call to function 'hb_itemGetNL' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 319: Call to function 'hb_itemClear' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 325: Call to function 'hb_itemType' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 327: Call to function 'hb_itemGetNL' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 331: Call to function 'hb_itemGetCPtr' with no prototype in function PaintTheLine
Warning W8069 wbrwline.c 331: Nonportable pointer conversion in function PaintTheLine
Warning W8065 wbrwline.c 334: Call to function 'hb_itemClear' with no prototype in function PaintTheLine
Warning W8065 wbrwline.c 1156: Call to function 'hb_itemCopy' with no prototype in function HB_FUN_WBRWPANE
Warning W8065 wbrwline.c 1183: Call to function 'hb_itemClear' with no prototype in function HB_FUN_WBRWPANE

el script de compilación está así:
SET BCDIR=C:\BCC55
SET HDIR=C:\xBase\xHarbour\0.997
SET FWDIR=C:\xBase\FWH

%BCDIR%\BIN\bcc32 -P- -c -tW -I%BCDIR%\include;%FWDIR%\include;%HDIR%\include -D__HARBOUR__ -DHARBOUR_USE_WIN_GTAPI -DHB_COMPAT_C53 -O2 WBrwLine.c > log.txt

SET BCDIR=
set HDIR=

Posted: Thu Aug 09, 2007 11:48 pm
by Antonio Linares
Añade esta línea al comienzo del fichero en C despues de #include <hbapi.h>:

#include <hbapiitm.h>