Clipper On Line • Ver Tópico - Diferença Harbour x xHarbour

Diferença Harbour x xHarbour

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Diferença Harbour x xHarbour

Mensagempor JoséQuintas » 13 Out 2017 21:28

Tem algumas diferenças que não são faladas.
Agora que peguei pra testar é que estou vendo.....

No Harbour: Quando se baixam os fontes do Harbour, TUDO é baixado.

No xHarbour: Quando se baixam os fontes do XHarbour, há dois downloads: fontes do XHarbour e fontes de contribuições

Nos binários:

No Harbour: Cada contribuição tem sua própria pasta

No Xharbour: Fica tudo embolado numa pasta só, nem dá pra saber o que é contribuição ou não

Contribuições:

No Harbour: Você indica exatamente o que quer, por exemplo gtwvg.hbc e isso já trás toda configuração

No XHarbour: Acho que ele já acrescenta tudo que é LIB, então o usuário nem sabe o que está usando, e pensa que tudo faz parte do xHarbour.

Fui compilar um exemplo da OOHG, USANDO XHARBOUR, e dá falta de funções.

d:\CVSFiles\allgui\oohg\samples\oohg>hbmk2 maindemooop -workdir=c:\temp oohg.hbc -xhb
hbmk2: Processing environment options: -comp=bcc
hbmk2: Processing configuration: d:\xharbour\bin\hbmk.hbc
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'maindemooop.prg'...
Generating C source output to 'c:\temp\maindemooop.c'...
Done.
Lines 215, Functions/Procedures 10, pCodes 5029
c:\temp\maindemooop.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_MAXLINE' referenced from D:\XHARBOUR\ADDONS\OOHG\LIB\WIN\BCC\OOHG.LIB|h_msgbox
Error: Unresolved external '_HB_FUN_EOM' referenced from D:\XHARBOUR\ADDONS\OOHG\LIB\WIN\BCC\OOHG.LIB|h_monthcal
hbmk2: Error: Running linker. 2
ilink32.exe @C:\Users\joseq\AppData\Local\Temp\1945qc.lnk

hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
MAXLINE(), EOM()


Bom.... no Harbour é só usar o hbmk2.

hbmk2 -find maxline

hbct.hbc (instalado):
MaxLine()
hbmisc.hbc (instalado):
ed_MaxLine()


No XHarbour... deve ser acrescentar a CT

E não é que XHarbour também tem GTWVG !!! Alguém sabia disso?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Diferença Harbour x xHarbour

Mensagempor JoséQuintas » 14 Out 2017 00:57

A GTWVG do XHarbour é igual ou anterior a do Harbour 3.0.
Não tem os PRGs referentes a GTWVG propriamente dita.

XHarbour:

gtwvg.png


Harbour:

gtwvg34.png


O interessante é que isso corresponde ao que falo da GTWVG.
O que considero GTWVG são os PRGs, e justamente isso não se vê nos exemplos, e também não tem no XHarbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Diferença Harbour x xHarbour

Mensagempor JoséQuintas » 14 Out 2017 01:12

E o que se vê no Harbour, de pastas de contribuições, no Xharbour só dá pra ver nos fontes.
Depois de gerado o binário, nem se sabe que isso existe e é contribuição.

contrib.png


Apenas estou relatando o que estou vendo, e talvez muita gente nem tenha visto.
No final, parece tudo a mesma coisa.
Como mostrei em outro tópico, o HBMK2 funciona para os dois.
Há diferenças, não só no fonte PRG, mas também no fonte C, quanto a nomes de função.
Mas dá pra gerar um XHarbour bem mais fácil de usar, parecido com o Harbour, e com os recursos extras do hbmk2.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Diferença Harbour x xHarbour

Mensagempor JoséQuintas » 14 Out 2017 01:54

Presente pra quem usa XHarbour:

Criei este fonte pra compilar as contribuições do XHarbour, apenas pra criar HBX.

#include "directry.ch"

PROCEDURE Main

   LOCAL oFile, oDir, cCmd

   oDir := Directory( "*.*", "D" )
   FOR EACH oFile IN oDir
      DO CASE
      CASE ! "D" $ oFile[ F_ATTR ]
      CASE oFile[ F_NAME ] == "."
      CASE oFile[ F_NAME ] == ".."
      OTHERWISE
         cCmd := "hbmk2 " + ;
                 oFile[ F_NAME ] + "\*.prg " + ;
                 oFile[ F_NAME ] + "\*.c " + ;
                 "-o" + oFile[ F_NAME ] + " " + ;
                 "-hbx=d:\xharbour\addons\" + oFile[ F_NAME ] + ".hbx " + ;
                 "-hblib " + ;
                 "-xhb"
         ? cCmd
         Inkey(0)
         RUN ( cCmd )
      ENDCASE
   NEXT

   RETURN


Aqui o resultado, e a lista obtida com hbmk2 -find *

xharbourhbx.zip
(20.52 KiB) Baixado 56 vezes


Se usar HBMK2, basta salvar isso na pasta \xharbour\addons
Vão ter ajuda pra funções que faltarem na compilação, vão poder pesquisar nomes de função, etc.

Por exemplo

hbmk2 -find date

gtwvg.hbc (not installed):

win_invalidaterect()
wvt_invalidaterect()
wvt_update()

addons\gtwvg.hbc (not installed):

win_invalidaterect()
wvt_invalidaterect()
wvt_update()

addons\gtwvw.hbc (not installed):

win_invalidaterect()
invalidaterect()
wvw_invalidaterect()
wvw_updatewindow()
wvw_xbupdate()

addons\cgilib.hbc (not installed):

datetogmt()

addons\hbmlzo.hbc (not installed):

lzo_version_date()

addons\misc.hbc (not installed):

arrayasdate()
dateasage()
dateasarray()
dateisleap()
gaugeupdate()
statusupdate()

addons\rdd_ads.hbc (not installed):

adssetdate()
adssetdateformat()


Não é a lista do Harbour, ela é diferente.

hbmk2 -find date

Núcleo Harbour (instalado):

Date()
GetPostValidate()
GetPreValidate()
GUIPostValidate()
GUIPreValidate()
hb_Date()
hb_DateTime()
hb_FGetDateTime()
hb_FSetDateTime()
HB_ISDATE()
HB_ISDATETIME()
LUpdate()
ReadUpdated()
sxDate()
Updated()
__dbUpdate()
__HBDate()
HBDATE()

gtwvg.hbc (instalado):

wvg_InvalidateRect()
wvg_UpdateWindow()
wvt_InvalidateRect()
wvt_Update()

gtwvw.hbc (instalado):

wvw_InvalidateRect()
wvw_UpdateWindow()
wvw_xbUpdate()

hbct.hbc (instalado):

FileDate()
SetDate()

hbcurl.hbc (não instalado):

curl_getdate()
hb_curl_date()

hbhpdf.hbc (instalado):

HPDF_MarkupAnnot_SetCreationDate()
HPDF_SetInfoDateAttr()

hbhttpd.hbc (instalado):

UUrlValidate()

hbmisc.hbc (instalado):

DateToTxtRU()

hbmlzo.hbc (instalado):

lzo_version_date()

hbnf.hbc (instalado):

ft_DateCnfg()
ft_SetDate()

hbssl.hbc (não instalado):

EVP_CipherUpdate()
EVP_DecodeUpdate()
EVP_DecryptUpdate()
EVP_DigestUpdate()
EVP_EncodeUpdate()
EVP_EncryptUpdate()
EVP_OpenUpdate()
EVP_SealUpdate()
EVP_SignUpdate()
EVP_VerifyUpdate()

hbtip.hbc (instalado):

tip_DateToGMT()

hbwin.hbc (instalado):

wapi_InvalidateRect()
wapi_UpdateWindow()
__oleVariantNullDate()

hbxpp.hbc (instalado):

dbUpdate()

rddads.hbc (não instalado):

AdsSetDateFormat()

xhb.hbc (instalado):

DateTime()
hb_LogDateStamp()
ValToDate()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Diferença Harbour x xHarbour

Mensagempor JoséQuintas » 14 Out 2017 10:50

Precisou de mais....
Tem contrib que não está em contrib.... rs

d:\CVSFiles\allgui\oohg\samples\oohg>hbmk2 maindemooop -xhb oohg.hbc
hbmk2: Processing environment options: -comp=bcc
hbmk2: Processing configuration: d:\xharbour\bin\hbmk.hbc
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'maindemooop.prg'...
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_c44wzp.dir\maindemooop.c'...
Done.
Lines 486, Functions/Procedures 11, pCodes 5031
C:\Users\joseq\AppData\Local\Temp\hbmk_c44wzp.dir\maindemooop.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_MAXLINE' referenced from D:\XHARBOUR\ADDONS\OOHG\LIB\WIN\BCC\OOHG.LIB|h_msgbox
Error: Unresolved external '_HB_FUN_EOM' referenced from D:\XHARBOUR\ADDONS\OOHG\LIB\WIN\BCC\OOHG.LIB|h_monthcal
hbmk2: Error: Running linker. 2
ilink32.exe @C:\Users\joseq\AppData\Local\Temp\thoj3y.lnk

hbmk2: Hint: Install package ct and input file 'addons\source\ct.hbc' for
missing Harbour function(s): eom(), maxline()


É só uma ajuda, na verdade pra xHarbour é acrescentar -lct pra adicionar a lib.

hbmk2 -find maxline

addons\source\ct.hbc (not installed):

maxline()


melhor do que ficar caçando aonde uma função está.

Não sei como o pessoal do XHarbour vive sem isso.
Os BATs devem adicionar tudo de uma vez, usando ou não...

Só expandi o fonte anterior.
A geração é apenas pra poder ter o hbx, as LIBs geradas é pra apagar.

#include "directry.ch"

PROCEDURE Main

   GeraHbx( "d:\xharbour\contrib\", "d:\xharbour\addons\contrib\" )
   GeraHbx( "d:\xharbour\source\",  "d:\xharbour\addons\source\" )

   RETURN

PROCEDURE GeraHbx( cSource, cTarget )

   LOCAL oFile, oDir, cCmd

   oDir := Directory( cSource + "*.*", "D" )
   FOR EACH oFile IN oDir
      DO CASE
      CASE ! "D" $ oFile[ F_ATTR ]
      CASE oFile[ F_NAME ] == "."
      CASE oFile[ F_NAME ] == ".."
      OTHERWISE
         cCmd := "hbmk2 " + ;
                 cSource + oFile[ F_NAME ] + "\*.prg " + ;
                 cSource + oFile[ F_NAME ] + "\*.c " + ;
                 "-o" + cTarget + oFile[ F_NAME ] + " " + ;
                 "-hbx=" + cTarget + oFile[ F_NAME ] + ".hbx " + ;
                 "-hblib " + ;
                 "-xhb"
         ? cCmd
         Inkey(0)
         RUN ( cCmd )
      ENDCASE
   NEXT

   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google Adsense [Bot] e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro