Página 3 de 3

Qual a última versão do Harbour 3.2?

Enviado: 02 Nov 2021 22:44
por JoséQuintas
Kapiaba escreveu:Aqui Mister Quintas, um exemplo, onde eu compilo com HARBOUR ou XHARBOUR. Muito simples e fácil.
um teste rápido com hbmk2, apesar que o automático pode falhar, e deve faltar libs:

Código: Selecionar todos

hbmk2 *.prg *.res -opbackup -lfiveh -lfivehc -L\fwh1905\lib hbwin.hbc hbtip.hbc hbcurl.hbc hbzebra.hbc xhb.hbc
E pode indicar a parte fixa em harbour\bin\hbmk.hbc (harbour e xharbour), e não precisar indicar as LIBs.
Mas os detalhes ficam pra se realmente for usar, porque com certeza vai ter detalhes especiais pra ter os dois ao mesmo tempo.

Qual a última versão do Harbour 3.2?

Enviado: 03 Nov 2021 07:38
por Kapiaba
Bom dia Mister Quintas, não sei usar o HBMK2, o senhor poderia criar os arquivos com este exemplo para eu testar aqui, porfa?

Obg. abs.

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 08:47
por Kapiaba
Bom dia Mister Quintas, nova versão. Agora com uma Pesquisa Incremental usando a poderosa xBrowse() do master Nages.

http://forums.fivetechsupport.com/viewt ... 5&start=15

Obg. abs.

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 09:29
por JoséQuintas
Sobre o hbmk2... ele pega tudo automático da configuração da máquina, é isso que pode atrapalhar no uso de harbour+Xharbour juntos.

Crie um aplicativo.hbp, coloque a lista de fontes, e digite hbmk2 aplicativo.hbp
O nome do EXE vai ser o do primeiro fonte, senão coloque -onome
dá pra memorizar fácil, output, saída, letra o

existem os arquivos hbc pra facilitar o uso de libs, por exemplo, poderia existir o fivewin.hbc já indicando aonde estão os arquivos CH, LIB, etc. que precisam entrar ao usar a lib. algumas libs do harbour tem isso. Por exemplo de PDF, porque além das LIBs tem os CH em alguma pasta, pra #include

Se a lib tiver hbc: só acrescentar, por exemplo, hbhpdf.hbc

Caso contrário, indicar nome dos arquivos e path com L, de LIB, onde L minúsculo são as LIBs, e L maiúsculo são os paths, igual no compilador C.
E pasta de includes, é I, de include, igual no Harbour.

Se usa os parâmetros no harbour de -m -n -w3 -es2, só colocar no hbp também, do mesmo jeito

Tanto faz se é na linha de comando, no hbp tudo numa linha só, um em cada linha, tanto faz.
Justamente por isso confunde alguns, que acham que -llib1 lib2 lib3 vai funcionar, porque não se trata de estar na mesma linha, mas sim de indicar -l em cada lib.

Acho que pra começo, talvez assim:

Código: Selecionar todos

-opbackup

pbackup.prg
proc9995.prg
proc9996.prg

pbackup.res
imagenes.res

-lfiveh
-lfivehc
-Lc:\fwh1905
-gui

hbwin.hbc
ou -lhbwin porque os #defines de hbwin podem atrapalhar, duplicados com fivewin

xhb.hbc
hbtip.hbc
hbzebra.hbc
hbcurl.hbc

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 10:52
por Kapiaba
Putz, Mister Quintas, pensado bem, vou continuar usando o meu .BAT y meu .LNK, para quê "queimar meus chifres-kkkk" com isso, se está tudo funcionando as 1000 maravilhas, né? Não vejo nenhuma vantagem neste HBMK2.exe. Mas respeito quem gosta dele. Mesmo assim, muito obrigado pela aula. Abs.

Regards, saludos.

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 16:19
por JoséQuintas
Basicamente é mover o que está no BAT e no LNK para o HBP.

Talvez esteja olhando só o BAT, e esquecendo que também usa o LNK, que também configura o linqueditor, etc.

Não se trata apenas de trocar o BAT, mas de todo conjunto: harbour.bat, harbour.lnk, ilink.cfg, etc.

E vai apagar coisas do que tem hoje, que já entram automaticamente.

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 16:27
por JoséQuintas

Código: Selecionar todos

@Echo Off
@Echo On
Cls
Echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo ³ FiveWin For  Harbour - Iniciando...           Harbour Development Power    ³Ü
Echo ³ (c) FiveTech, 1993-2020      For Microsoft Windows 95/98/NT/2000/ME And XP ³Û
Echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
Echo ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

Echo  .
Echo  Aguarde... Compilando os Modulos do Programa...

Set GT=gtgui
Set hdir=C:\HBBCC74
Set bcdir=C:\BCC74
Set fwhdir=C:\FwH1905

@If Exist *.Obj      Del *.Obj
@If Exist *.Map      Del *.Map
@If Exist *.TDS      Del *.TDS
@If Exist *.Bc       Del *.bc
@If Exist *.C        Del *.C
@If Exist *.HC       Del *.HC

If Exist PBACKUP.Exe Del PBACKUP.Exe

%hdir%\bin\harbour PBACKUP  /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p    > Erro.log 2>  ERROS.LOG
%hdir%\bin\harbour PROC9995 /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p   >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour PROC9996 /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p   >> Erro.log 2>> ERROS.LOG

%bcdir%\bin\bcc32 -M -c -v -O2 -ePBACKUP.Exe  -I%hdir%\include -I%bcdir%\include PBACKUP.C  >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -ePROC9995.Exe -I%hdir%\include -I%bcdir%\include PROC9995.C >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -ePROC9996.Exe -I%hdir%\include -I%bcdir%\include PROC9996.C >> Erro.log 2>> ERROS.LOG

If ErrorLevel 1 Type Erro.log | More
If ErrorLevel 1 Goto Exit

%bcdir%\bin\BRC32.Exe -R XPLOOK.RC

:ENDCOMPILE

%bcdir%\bin\ilink32 -aa -Gn -Tpe -s -v @HARB.LNK

Echo .
IF ERRORLEVEL 1 GOTO LINKERROR
Cls
Echo .
Echo * Aplicacao Foi Desenvolvida Com Sucesso
Echo .
C:\PECOMPACT\PEC2 /NB /EMP:Y /TM:Y /CR:Y /MC PBACKUP.Exe
Echo .
PBACKUP
GOTO EXIT

:LINKERROR
PAUSE * Applicacao Nao Foi Desenvolvida Com Sucesso. Veja ERRO.LOG *
GOTO EXIT
Echo .
CLS

:EXIT
destaque pra esta linha

Código: Selecionar todos

%bcdir%\bin\ilink32 -aa -Gn -Tpe -s -v @HARB.LNK

Código: Selecionar todos

C:\BCC74\lib\c0w32.obj         +
PBACKUP.obj                    +
PROC9995.obj                   +
PROC9996.obj,                  +
PBACKUP.exe,                   +
PBACKUP.map,                   +
C:\FWH1905\lib\FiveH.lib       +
C:\FWH1905\lib\FiveHC.lib      +
c:\HBBCC74\lib\hbwin.lib       +
c:\HBBCC74\lib\gtgui.lib       +
c:\HBBCC74\lib\hbrtl.lib       +
c:\HBBCC74\lib\hbvm.lib        +
c:\HBBCC74\lib\hblang.lib      +
c:\HBBCC74\lib\hbmacro.lib     +
c:\HBBCC74\lib\hbrdd.lib       +
c:\HBBCC74\lib\rddntx.lib      +
c:\HBBCC74\lib\rddcdx.lib      +
c:\HBBCC74\lib\rddfpt.lib      +
c:\HBBCC74\lib\hbsix.lib       +
c:\HBBCC74\lib\hbdebug.lib     +
c:\HBBCC74\lib\hbcommon.lib    +
c:\HBBCC74\lib\hbpp.lib        +
c:\HBBCC74\lib\hbcpage.lib     +
c:\HBBCC74\lib\hbcplr.lib      +
c:\HBBCC74\lib\hbct.lib        +
c:\HBBCC74\lib\hbpcre.lib      +
c:\HBBCC74\lib\xhb.lib         +
c:\HBBCC74\lib\hbziparc.lib    +
c:\HBBCC74\lib\hbmzip.lib      +
c:\HBBCC74\lib\hbzlib.lib      +
c:\HBBCC74\lib\minizip.lib     +
c:\HBBCC74\lib\hbusrrdd.lib    +
c:\HBBCC74\lib\hbcurl.lib      +
c:\HBBCC74\lib\hbtip.lib       +
c:\HBBCC74\lib\hbzebra.lib     +
c:\HBBCC74\lib\libcurl.lib     +
C:\XHBBCC74\Lib\png.Lib        +
c:\bcc74\lib\cw32.lib          +
c:\bcc74\lib\uuid.lib          +
c:\bcc74\lib\import32.lib      +
c:\bcc74\lib\ws2_32.lib        +
c:\bcc74\lib\psdk\odbc32.lib   +
c:\bcc74\lib\psdk\nddeapi.lib  +
c:\bcc74\lib\psdk\iphlpapi.lib + 
c:\bcc74\lib\psdk\msimg32.lib  +
c:\bcc74\lib\psdk\psapi.lib    +
c:\bcc74\lib\psdk\rasapi32.lib + 
c:\bcc74\lib\psdk\gdiplus.lib  +
c:\bcc74\lib\psdk\shell32.lib,
pBackup.res                    +
imagenes.res
a única coisa que TALVEZ precise do bat é isto, pra transformar o resource com telas windows, em RES, caso use mingw.
RC contendo dialogs não são compilados pelo mingw

Código: Selecionar todos

%bcdir%\bin\BRC32.Exe -R XPLOOK.RC
De resto, sua lista vai diminuir muito.
Nas libs, colocar um -l na frente, mas quaae todas aí são automáticas.

E pode até usar pra Harbour/XHarbour, o que reduz tudo pra metade, só por esse motivo.

Qual a última versão do Harbour 3.2?

Enviado: 04 Nov 2021 16:31
por JoséQuintas
Começa por um simples, que talvez ajude a mudar de idéia.

Código: Selecionar todos

procedure Main

  ? "hello"
hbmk2 test.prg

como só entra a parte padrão, nada a acrescentar.

Qual a última versão do Harbour 3.2?

Enviado: 06 Nov 2021 13:25
por Kapiaba
Many thanks Mister Quintas, com sua ajuda e dos amigos FiveWinners que usam FiveWin for Harbour, já comecei a dar os primeiros passos com o HBMK2.exe, ainda estou "apanhando", mas aprendi, que a experiência vem com o tempo. Super agradecido a vósmicê. Abs.

Regards, saludos.

Qual a última versão do Harbour 3.2?

Enviado: 06 Nov 2021 17:58
por JoséQuintas
Ele usa o que estiver no PATH como configuração default: harbour e compilador C.
Mas, por defeito ou não, também usa HB_INSTALL_PREFIX, que é a pasta de instalação padrão.

No XHarbour:

SET HB_INSTALL_PREFIX=c:\XHarbour
SET PATH=c:\XHarbour\bin
SET PATH=c:\bcc57

copie o hbmk2.exe pra pasta c:\xharbour\bin

hbmk2 test.prg -xhb

Assim vai compilar/linqueditar com XHarbour

O -xhb é importantíssimo no XHarbour, porque HBMK2.EXE contém Harbour dentro dele, e não precisa do harbour.exe.
Já acrescentando -xhb, vai usar o harbour.exe que encontrar no PATH, que é o caso do XHarbour, além das LIBs direcionadas ao Harbour.

Esta complicação, que mencionei nesta última mensagem, é porque tem Harbour e XHarbour ao mesmo tempo na máquina.
Se fosse fixo, bastaria o modo automático.

Mas de um modo geral, o mesmo projeto (HBP) funcionaria para Harbour ou XHarbour, ou 32/64 bits, ou qualquer compilador C.
No final das contas, você só vai configurar o que não vier automático, ou sair fora do padrão.

Se não fosse a parte de compatibilidade (o -xhb), poderia até usar isto no HBP:
{xhb}-llibfwXHarbour -llibfw2XHarbour (libs pra XHarbour)
{!xhb}-llibffwHarbour -llibfw2Harbour (libs pra Harbour)

Mas tem outras opções, que deixa o projeto se ajustando conforme o que usa automaticamente.

No final, é juntar tudo que é BAT, LNK, MAKE, etc, tudo que costuma criar separado, num arquivo de projeto (HBP).
É isso que deixa interessante.

E fugindo dele, o outro tipo HBC, é direcionado a LIBs, por exemplo ao fivewin.
Um arquivo fivewin.hbc poderia fornecer toda configuração do fivewin de uma vez: libs, includes, etc.
no projeto, bastaria fivewin.hbc

O conjunto da coisa é legal, é que como já tem um projeto pronto, já entra direto no uso "não básico".
E como vai usar Harbour e XHarbour ao mesmo tempo, já entra num uso mais avançado, com certeza fora do uso normal - pra usar os dois ao mesmo tempo com HBMK2, onde qualquer um, ou até os dois, podem estar no PATH ao mesmo tempo.
Mas ele tem as formas de fazer "IF" dentro dele.

O HBMK2 pode chamar automaticamente (se configurado):

- compilador de resource
- compilador C
- o import lib
- criação de manifest
- compactação com UPX
- criar LIB
- criar DLL
- criar arquivos de tradução para um programa multi-idioma
- criar ajuda, indicando em que lib está cada função
E por aí vai... é quase um ambiente IDE, sem a parte de desenhar telas.

hbmk2 -longhelp

isso mostra muitas opções, eu nem conheço, e nem sei se algum dia vou conhecer todas elas.

Quanto mais usar, mais vai gostar, até mesmo pra usar com XHarbour.

Qual a última versão do Harbour 3.2?

Enviado: 08 Nov 2021 07:53
por Jairo Maia
JoséQuintas escreveu:SET PATH=c:\XHarbour\bin
SET PATH=c:\bcc57
Creio que o correto aqui, seria:

Para que as duas pastas sejam as PRIMEIRAS a serem pesquisadas:

Código: Selecionar todos

SET PATH=c:\xHarbour\bin;c:\bcc57;%Path%
Para que as duas pastas sejam as ÚLTIMAS a serem pesquisadas:

Código: Selecionar todos

SET PATH=%Path%;c:\xHarbour\bin;c:\bcc57