Page 1 of 1

como compilar con xHarbour para modo consola (Solucionado)

Posted: Wed Nov 27, 2013 12:12 pm
by miarcod
Hola, a ver si alguien pudiese ayudarme, he estado buscando por todas partes pero no encuentro ninguna forma de hacerlo

Estoy intentando compilar un ejemplo como el que sigue en XHARBOR, (en harbour si lo he conseguido) para que se ejecute en modo consola, pero no lo consigo.

Utilizo el HARBORX.BAT que trae
Si compilo con el flag GT=gtgui me aparece el cuadro de dialogo de Windows
// desactivando las lilbrerias de fivewin (fivehx, fiveHc), sino me sale el dialogo de Windows igualmente
Si compilo con el flag GT=gtwin no hace nada (se genera el fichero pero no muestra nada en pantalla)

Alguien podría indicarme un fichero para compilar con xharbour el ejemplo

Gracias

Code: Select all

function Main()
   SETMODE(25,80)
   //@ 12,12 SAY "HOLA MUNDO"

   ALERT( "Hola Mundo" )

   //CLEAR SCREEN
  // WAIT "PULA UNA TECLA"

return nil

Re: como compilar con xHarbour para modo consola

Posted: Wed Nov 27, 2013 5:23 pm
by horacio
En un tiempo hice algunas pruebas con xharbour en modo consola y utilizaba este .bat

Code: Select all

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\disco_d\xharbour1
set bcdir=c:\disco_d\borland\bcc55

%hdir%\bin\harbour -w3 %1 /n /i /b..\include;%hdir%\include /w /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE

IF EXIST %1.rc %bcdir%\bin\brc32 -r %1

echo c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\lang.lib + >> b32.bc
echo %hdir%\lib\macro.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\dbffpt.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\debug.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\pp.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc
echo %hdir%\lib\hbzip.lib + >> b32.bc
echo %hdir%\lib\ct.lib + >> b32.bc
echo %hdir%\lib\tip.lib + >> b32.bc
echo %hdir%\lib\hsx.lib + >> b32.bc
echo %hdir%\lib\usrrdd.lib + >> b32.bc
echo %hdir%\lib\codepage.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\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

rem uncomment this line to use the debugger and comment the following one
rem %bcdir%\bin\ilink32 -Gn -Tpe -s -v @b32.bc
%bcdir%\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c

:LINKERROR
ECHO * There are errors
GOTO EXIT
 
Hace tiempo que no uso xHarbour y no sé si las librerias son las mismas, sería cuestión de checar. Espero te sirva
Saludos

Re: como compilar con xHarbour para modo consola

Posted: Wed Nov 27, 2013 6:56 pm
by miarcod
Gracias por la respuesta

no funciona. el efecto es el mismo. compila y enlaza se genera un ejecutable pero no muestra nada en pantalla

Re: como compilar con xHarbour para modo consola

Posted: Wed Nov 27, 2013 10:13 pm
by juan fco. vasquez Mendoza
Prueba este batch file para compilar :



@ECHO OFF
CLS

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=C:\xharbour
set bcdir=C:\bcc55

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE

IF EXIST %1.rc %bcdir%\bin\brc32 -r %1
REM echo c0x32.obj + > b32.bc
echo c0x32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\hsx.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\Lang.lib + >> b32.bc
echo %hdir%\lib\macro.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\CodePage.lib + >> b32.bc
echo %hdir%\lib\DbfFpt.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc

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

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib, >> b32.bc


ECHO *
ECHO Linking...
%bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc

rem delete temporary files
rem @del %1.c

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
GOTO EXIT
ECHO

:LINKERROR
rem PAUSE * Linking errors *
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT

Re: como compilar con xHarbour para modo consola

Posted: Thu Nov 28, 2013 1:42 am
by MarioG
miarcod;
fijate en tu batch, busca:
gtgui.lib, y reemplazalo por gtwin.lib

si mal no recuerdo es todo lo que necesitas

Re: como compilar con xHarbour para modo consola

Posted: Thu Nov 28, 2013 3:10 am
by ltorres
Yo compilaba así:

Code: Select all

***************************
 PROCEDURE Popemenu()
.
.
.
.
Return

Procedure Main()

request hb_gt_win
SetMode (30, 80)
   Application:cTitle := "popemenu"
   popemenu()
   Application:Run()

Return
No tengo el detalle a la mano, estoy en otra ciudad, si no te ayuda antes del sabado que regreso, me avisas para buscar y pasarte el detalle completo.

Saludos

Re: como compilar con xHarbour para modo consola

Posted: Thu Nov 28, 2013 2:53 pm
by miarcod
Al final lo solucioné poniendo en la primera línea de la función main

Request hb_gt_win


Gracias a todos