Clipper On Line • Ver Tópico - 2021 - Você é programador ou não é?

2021 - Você é programador ou não é?

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 31 Dez 2020 16:45

É incrível como tem programador que ainda não aprendeu essas coisas, e mais incrível ainda as LIBs fazerem o mesmo, parece até que não querem que ninguém mais aprenda.

d:\>harbour
'harbour' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

d:\>clipper
'clipper' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

d:\>rtlink
'rtlink' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

d:>notepad


O notepad funciona e o resto não. Porque?

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common


Assim como no tempo do DOS, que tinha SET PATH=C:\DOS, no Windows também tem.
Isso existe há mais de 40 anos, então não pode dizer que é novidade.

Quer que o programa funcione em qualquer lugar? ele precisa estar instalado e precisa estar nessa variável PATH.

Era assim com Clipper, RTLink, Blinker....
É assim com Harbour, compilador C, etc.

Meu Clipper não funciona... meu Harbour não funciona....
Veja se está instalado, e se a pasta está no PATH
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 31 Dez 2020 16:54

Deu falta de função

É a mesma coisa, só não é no mesmo lugar.
Veja o nome está certo, ou se está dentro de uma LIB, e se colocou lá no comando de linquedição a localização e o nome da lib.

Deu falta de arquivo, prg, c, lib, etc.

Veja se o arquivo existe, e se indicou a localização correta
A linquedição, na maioria das vezes, só vai acrescentar o que você disser pra acrescentar.
O linqueditor não sai procurando no computador inteiro aonde estão as coisas, é você quem diz pra ele aonde procurar.

Se tá faltando alguma coisa, ou não colocou lá pra ele qual o arquivo e/ou qual a localização, ou não existe mesmo, pode até ser que o nome esteja errado.
De repente pode ser função/lib do XHarbour , ou Harbour 1.0, ou 2.0 ou 3.0 ou 3.2 ou 3.4, está usando uma coisa com nome de outra.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 31 Dez 2020 17:06

E de antigamente pra cá inventaram o HBMK2.
Basicamente é colocar a lista de arquivos e de PATHs.

Ficou até mais fácil, porque agora, pelo menos a parte de programação, fica tudo num lugar só.
Colocar localização (PATH) e nome de arquivo.

Pra facilitar, ele deixa organizar por grupos, os HBC.

Tem coisa que você usa sempre, pra tudo, então.... pode colocar em \harbour\bin\hbmk.hbc

Tem coisa que é só da lib, por exemplo da lib hwgui.... então.... pode colocar em um arquivo hwgui.hbc

Tem coisa que vale pra uma pasta inteira, vários módulos que vão ser compilados separados... então... pode colocar em um arquivo hbmk.hbm na pasta

E o que coloca lá dentro de cada arquivo?
Coloca o que precisa pra compilar, basicamente nome de arquivo e localização.
Se precisar alguma informação a mais, coloca lá também.
Quanto mais "prontos" estiverem os arquivos, mais fácil dali pra frente.

Lembrando que no HBMK2, pode ser nome de fonte (PRG ou C ou CPP), arquivo de resource (RC), arquivo de ícone (ICO), arquivo manifest, arquivo DLL (sim, também), arquivo de tradução (PO), arquivo de projeto (HBP), e mais HBP ou HBM ou HBC, e outros mais.

O Xharbour é diferente do Harbour...........
Ué... se pode indicar LIBs, PRGs, RCs, etc... o que falta pra XHarbour? Nada.
E o que falta pra se usar na prática? Nada.
E o que falta pra se usar com qualquer LIB? Nada.
Ele usa o Harbour.exe e o compilador C..... mesma coisa pra Harbour e XHarbour. (exceto que não precisa do Harbour.exe pra Harbour).

Vai usar o Borland C, Microsoft C, GCC, Pelles C, PQP C, 32 bits, 64 bits... é só dizer pra ele o que vai usar.
E tem que estar instalado na máquina, e no PATH, .... é lógico.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 31 Dez 2020 17:50

Se você disser pra alguém: vai lá e paga minha conta.
Aonde? que conta? com que dinheiro?
Mas se você disser: vai lá naquela mesa, pega aquela conta que está encima, aquele dinheiro que está no outro canto, e vai em tal lugar.... aí é outra história.

Então... HBMK2 é a mesma coisa.
Basta dizer o que você quer, o que precisa pra fazer isso, e aonde estão as coisas.
E se tiver alguma condição especial, indicar lá também.

Lembrando que qualquer compilação/linquedição é assim, com ou sem 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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 01 Jan 2021 21:45

Complemento:

Se qualquer compilação é assim, com ou sem HBMK2, então pra que precisa HBMK2?

A parte mais complicada o HBMK2 já resolve:

Os comandos são diferentes pra Borland C, Microsoft C, Pelles C, mingw, etc.
E conforme o compilador C, cada compilador C tem suas próprias bibliotecas, o que o HBMK2 já resolve.
Isso é padrão, não importa se é Harbour ou XHarbour.

As bibliotecas do núcleo, os parâmetros de GUI e console, NTX,CDX,etc. também são padrão.

Com toda essa parte padrão resolvida, sobra apenas adicionar/remover nomes de arquivos pra compilar/linqueditar.
E esta parte tem a ver com cada projeto, é adicionar/remover o que o projeto precisa, por isso o HBMK2 não faz automático.
Pra que encher o EXE com coisas que não são usadas? por isso é por projeto.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 03 Jan 2021 21:08

Exemplo para que serve o HBM.
Temos lá na HWGUI:
d:\github\all\hwgui\samples\a.prg
d:\github\all\hwgui\samples\bincnts.prg
d:\github\all\hwgui\samples\buildpelles.prg
d:\github\all\hwgui\samples\colrbloc.prg
d:\github\all\hwgui\samples\dbview.prg
d:\github\all\hwgui\samples\demodbf.prg
d:\github\all\hwgui\samples\demohlist.prg
d:\github\all\hwgui\samples\demohlistsub.prg
d:\github\all\hwgui\samples\fileselect.prg
d:\github\all\hwgui\samples\getupdown.prg
d:\github\all\hwgui\samples\getwinvers.prg
d:\github\all\hwgui\samples\graph.prg
d:\github\all\hwgui\samples\grid_1.prg
d:\github\all\hwgui\samples\grid_2.prg
d:\github\all\hwgui\samples\grid_3.prg
d:\github\all\hwgui\samples\grid_4.prg
d:\github\all\hwgui\samples\grid_5.prg
d:\github\all\hwgui\samples\hello.prg
d:\github\all\hwgui\samples\helpdemo.prg
d:\github\all\hwgui\samples\hexbincnt.prg
d:\github\all\hwgui\samples\hole.prg
d:\github\all\hwgui\samples\icons.prg
d:\github\all\hwgui\samples\iesample.prg
d:\github\all\hwgui\samples\modtitle.prg
d:\github\all\hwgui\samples\nice.prg
d:\github\all\hwgui\samples\nice2.prg
d:\github\all\hwgui\samples\progbars.prg
d:\github\all\hwgui\samples\propsh.prg
d:\github\all\hwgui\samples\pseudocm.prg
d:\github\all\hwgui\samples\shadebtn.prg
d:\github\all\hwgui\samples\stretch.prg
d:\github\all\hwgui\samples\tab.prg
d:\github\all\hwgui\samples\testado.prg
d:\github\all\hwgui\samples\testalert.prg
d:\github\all\hwgui\samples\testbrw.prg
d:\github\all\hwgui\samples\testchild.prg
d:\github\all\hwgui\samples\testfunc.prg
d:\github\all\hwgui\samples\testget1.prg
d:\github\all\hwgui\samples\testget2.prg
d:\github\all\hwgui\samples\testhgt.prg
d:\github\all\hwgui\samples\testhmonth.prg
d:\github\all\hwgui\samples\testimage.prg
d:\github\all\hwgui\samples\testini.prg
d:\github\all\hwgui\samples\testmenubitmap.prg
d:\github\all\hwgui\samples\testrtf.prg
d:\github\all\hwgui\samples\testsdi.prg
d:\github\all\hwgui\samples\testspli.prg
d:\github\all\hwgui\samples\testtray.prg
d:\github\all\hwgui\samples\testtree.prg
d:\github\all\hwgui\samples\testxml.prg
d:\github\all\hwgui\samples\test_bot.prg
d:\github\all\hwgui\samples\trackbar.prg
d:\github\all\hwgui\samples\tstcombo.prg
d:\github\all\hwgui\samples\tstprdos.prg
d:\github\all\hwgui\samples\tstscrlbar.prg
d:\github\all\hwgui\samples\tstsplash.prg
d:\github\all\hwgui\samples\twolistbox.prg
d:\github\all\hwgui\samples\twolstsub.prg
d:\github\all\hwgui\samples\winprn.prg
d:\github\all\hwgui\samples\xmltree.prg


São vários exemplos, pra compilar cada um.
tentativa 1:
d:\github\all\hwgui\samples>hbmk2 a

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'a.prg'...

a.prg:9: error F0029  Can't open #include file 'windows.ch'
hbmk2: Error: Running Harbour compiler (built-in). 1
(d:\harbour\bin\harbour.exe) -n2 a.prg -m -n -w3 -es2 -ge1 -DHBMK_HAS_HBMK=1 -oC:\Users\jmcqu\AppData\Local\Temp\hbmk_8drark.dir\ -id:\harbour\include


Ok, é hwgui, então precisa indicar hwgui, o HBC da hwgui.

Tentativa 2, indicando o hbc:
d:\github\all\hwgui\samples>hbmk2 a ../hwgui.hbc

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'a.prg'...
1800
a.prg:17: warning W0002  Ambiguous reference, assuming memvar 'CIMAGEDIR'

a.prg:17: warning W0002  Ambiguous reference, assuming memvar 'OFONT'

a.prg:23: warning W0001  Ambiguous reference 'OMAINWINDOW'

a.prg:25: warning W0001  Ambiguous reference 'OPANEL'

a.prg:25: warning W0001  Ambiguous reference 'OPANEL'

a.prg:29: warning W0001  Ambiguous reference 'OPANEL'

a.prg:29: warning W0001  Ambiguous reference 'CIMAGEDIR'

a.prg:33: warning W0001  Ambiguous reference 'OMAINWINDOW'

a.prg:38: warning W0001  Ambiguous reference 'OFONT'

a.prg:38: warning W0001  Ambiguous reference 'OFONT'

a.prg:40: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:40: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:40: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:40: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:43: warning W0001  Ambiguous reference 'OMAINWINDOW'

a.prg:67: warning W0001  Ambiguous reference 'OMAINWINDOW'

a.prg:68: warning W0001  Ambiguous reference 'OMAINWINDOW'

a.prg:88: warning W0001  Ambiguous reference 'OMAINWINDOW'
100
a.prg:109: warning W0001  Ambiguous reference 'CIMAGEDIR'

a.prg:113: warning W0001  Ambiguous reference 'CIMAGEDIR'

a.prg:167: warning W0001  Ambiguous reference 'OBMP2'
200
a.prg:201: warning W0001  Ambiguous reference 'CIMAGEDIR'

a.prg:220: warning W0003  Variable 'OSAY' declared but not used in function '158:OPENABOUT'

a.prg:222: warning W0001  Ambiguous reference 'OBMP2'

a.prg:223: warning W0005  RETURN statement with no return value in function

a.prg:227: warning W0001  Ambiguous reference 'OMODDLG'

a.prg:229: warning W0001  Ambiguous reference 'OBMP2'

a.prg:231: warning W0001  Ambiguous reference 'OMODDLG'

a.prg:260: warning W0001  Ambiguous reference 'OFONT'

a.prg:271: warning W0001  Ambiguous reference 'OFONT'

a.prg:272: warning W0001  Ambiguous reference 'OFONT'

a.prg:274: warning W0004  Codeblock parameter 'OB' declared but not used in function 'FILEOPEN'

a.prg:280: warning W0032  Variable 'MYPATH' is assigned but not used in function '249:FILEOPEN'
300
a.prg:345: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:345: warning W0001  Ambiguous reference 'NCOLOR'

a.prg:361: warning W0001  Ambiguous reference 'OTAB'

a.prg:361: warning W0001  Ambiguous reference 'OTAB'

a.prg:362: warning W0001  Ambiguous reference 'OTAB'

a.prg:364: warning W0001  Ambiguous reference 'OTAB'

a.prg:365: warning W0001  Ambiguous reference 'OTAB'

a.prg:367: warning W0001  Ambiguous reference 'OTAB'

a.prg:384: warning W0003  Variable 'O' declared but not used in function '326:DIALOGFROMPRG'

a.prg:384: warning W0003  Variable 'CRES' declared but not used in function '329:DIALOGFROMPRG'

a.prg:393: warning W0003  Variable 'ODLG' declared but not used in function '384:CREATEC'
400
a.prg:400: warning W0007  Function 'SENDEMAIL' does not end with RETURN statement

a.prg:435: warning W0001  Ambiguous reference 'LSUCESS'

a.prg:437: warning W0001  Ambiguous reference 'LSUCESS'

a.prg:440: warning W0001  Ambiguous reference 'LSUCESS'

a.prg:455: warning W0001  Ambiguous reference 'OPROG'

a.prg:455: warning W0001  Ambiguous reference 'OPROG'

a.prg:458: warning W0001  Ambiguous reference 'OCOMBO'

a.prg:463: warning W0003  Variable 'CRES' declared but not used in function '445:TESTPROGRES'

a.prg:463: warning W0007  Function 'TESTPROGRES' does not end with RETURN statement

a.prg:466: warning W0001  Ambiguous reference 'OPROG'
500
No code generated.
hbmk2: Error: Running Harbour compiler (built-in). 1
(d:\harbour\bin\harbour.exe) -n2 a.prg -m -n -w3 -es2 -ge1 -DHBMK_HAS_HBMK=1 -DHBMK_HAS_HWGUI=1 -oC:\Users\jmcqu\AppData\Local\Temp\hbmk_agio7h.dir\ -id:\harbour\include -i..\include


Ok, meu default é tolerância zero, -w3 -es2, tá tudo sem declaração.
Vamos deixar os possíveis erros pra lá.... vamos usar os parâmetros "que se dane", os parâmetros -w0 -es0

d:\github\all\hwgui\samples>hbmk2 a ../hwgui.hbc -w0 -es0

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'a.prg'...
Lines 4122, Functions/Procedures 19
Generating C source output to 'C:\Users\jmcqu\AppData\Local\Temp\hbmk_w9sw0j.dir\a.c'... Done.
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96w       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1897472 ->    653824   34.46%    win32/pe     a.exe                                                                                                                                                  Packed 1 file.


Pronto.
Mas.... são vários fontes.... teria que fazer isso pra todos....

Então, dentro dessa pasta, vamos criar o hbmk.hbm
Isso vai ser aplicado pra tudo que existir na pasta.

copy con hbmk.hbm
../hwgui.hbc
-w0 -es0


Agora vamos compilar de novo....

d:\github\all\hwgui\samples>hbmk2 a

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando script local make: hbmk.hbm
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'a.prg'...
Lines 4122, Functions/Procedures 19
Generating C source output to 'C:\Users\jmcqu\AppData\Local\Temp\hbmk_9effpj.dir\a.c'... Done.
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96w       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1897472 ->    653824   34.46%    win32/pe     a.exe                                                                                                                                                  Packed 1 file.


d:\github\all\hwgui\samples>hbmk2 buildpelles

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando script local make: hbmk.hbm
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'buildpelles.prg'...
Lines 4254, Functions/Procedures 8
Generating C source output to 'C:\Users\jmcqu\AppData\Local\Temp\hbmk_e237st.dir\buildpelles.c'... Done.
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96w       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1855488 ->    642560   34.63%    win32/pe     buildpelles.exe                                                                                                                                        Packed 1 file.


d:\github\all\hwgui\samples>hbmk2 dbview

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando script local make: hbmk.hbm
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'dbview.prg'...
Lines 4448, Functions/Procedures 28
Generating C source output to 'C:\Users\jmcqu\AppData\Local\Temp\hbmk_6hkd1x.dir\dbview.c'... Done.
C:/Users/jmcqu/AppData/Local/Temp/hbmk_6hkd1x.dir/dbview.o:dbview.c:(.data+0xad8): undefined reference to `HB_FUN_HB_CODEPAGE_DE858'
collect2.exe: error: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe C:/Users/jmcqu/AppData/Local/Temp/hbmk_6hkd1x.dir/dbview.o C:/Users/jmcqu/AppData/Local/Temp/hbmk_6hkd1x.dir/hbmk_cfn83h.o    -m32 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--pic-executable,-e,_mainCRTStartup -mwindows -static -Wl,--start-group -Wl,-Bstatic -lhwgui_core -lhwgui_procmisc -lhwgui_hbxml -lhwgui_debug -lhbextern -lhbdebug -lhbvmmt -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtstd -lgtpca -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre2 -lhbzlib -Wl,-Bdynamic   -Wl,--end-group -s -odbview.exe  -Ld:/harbour/lib/win/mingw -Ld:/cdrom/fontes/integra/sefazclass -Ld:/cdrom/fontes/integra/libjpa -L../lib/win/mingw

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


Bom.... infelizmente o Harbour 3.4 foi congelado. Essa codepage surgiu depois. Mais simples deixar todos os exemplos em inglês, que é a codepage default.

d:\github\all\hwgui\samples>hbmk2 xmltree

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando script local make: hbmk.hbm
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'xmltree.prg'...
Lines 3856, Functions/Procedures 4
Generating C source output to 'C:\Users\jmcqu\AppData\Local\Temp\hbmk_tgon1l.dir\xmltree.c'... Done.
xmltree.prg: In function 'HB_FUN_ANSI2UTF8':
xmltree.prg:198:32: warning: passing argument 1 of 'utfConvert' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
xmltree.prg:175:15: note: expected 'char *' but argument is of type 'const char *'
xmltree.prg: In function 'HB_FUN_UTF82ANSI':
xmltree.prg:205:33: warning: passing argument 1 of 'utfConvert' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
xmltree.prg:175:15: note: expected 'char *' but argument is of type 'const char *'
xmltree.prg: In function 'HB_FUN_OEM2UTF8':
xmltree.prg:215:32: warning: passing argument 1 of 'utfConvert' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
xmltree.prg:175:15: note: expected 'char *' but argument is of type 'const char *'
xmltree.prg: In function 'HB_FUN_UTF82OEM':
xmltree.prg:222:33: warning: passing argument 1 of 'utfConvert' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
xmltree.prg:175:15: note: expected 'char *' but argument is of type 'const char *'
xmltree.prg: At top level:
cc1.exe: warning: unrecognized command line option '-Wno-cast-function-type'
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96w       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   1863680 ->    646144   34.67%    win32/pe     xmltree.exe                                                                                                                                            Packed 1 file.


Tudo bem, são rotinas em C, apenas mostrou avisos de alerta, mas compilou normalmente.
Mas... porque rotinas em C pra converter codepage? o Harbour já tem isso.

Então.....
Também não é só ficar copiando fonte, e concordando com fonte.
As LIBs tem muito disso... fonte velho e desatualizado.
Fontes de usuário também, talvez até mais coisas desnecessárias.

Porque tem isso no fonte da LIB?
Sei lá... pode ser pra XHarbour, pode ser que esqueceram lá e ninguém nunca reclamou...
Pode ser que só o mingw é que alerte sobre esses possíveis problemas...
Pode ser também que as funções da HWGUI precisem disso, afinal, tem funções próprias pra API Windows....

É por isso que eu gosto do Harbour 3.4. Tá tudo padronizado.
O HBMK2 até avisa se algum programador tentar usar certas coisas velhas que devem ser abandonadas.
Ele faz isso para o Harbour, pra evitar que os desenvolvedores do Harbour "estraguem" os fontes !!!!

Digamos que a linguagem C foi atualizada, e um recurso antigo não é mais para ser usado:
Então... o Viktor embutiu essa checagem no HBMK2, sempre que possível, assim o programador já corrige antes que isso se torne problema.
Não é o caso acima, apenas lembrei disso.

Mas é o tal negócio: ele é programador, então já programa a ferramenta de trabalho pra ajudar a conferir as coisas.

Podemos fazer a mesma coisa, como eu já disse algumas vezes.
O programa evitando que a gente faça coisa errada....
E como se faz isso? Ué... somos programadores, é pensar em como fazer...

Mas voltando ao assunto do HBM..... criei um único arquivo HBMK.HBM, e ele vale pra todos os fontes da pasta.
Posso compilar todos os exemplos diretamente, sem precisar parâmetro nenhum.

Relembrando: NADA configurado na máquina pra HWGUI, apenas o HBM na pasta, e o hwgui.hbc indicado no comando (poderia ser num hbp também).
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 03 Jan 2021 21:17

Mas e se eu quisesse compilar tudo de uma vez?

Ué... somos programadores....

copy con x.bat
for %%a in (*.prg) do hbmk2 %%a


pronto, só digitar X<ENTER>
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 03 Jan 2021 21:22

Deu erro num deles:

d:\github\all\hwgui\samples>hbmk2 grid_2
hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Processando script local make: hbmk.hbm
hbmk2: Processando arquivo de configuração: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (7bb5566) (2020-12-30 22:11)
Copyright (c) 1999-2020, https://github.com/JoseQuintas/harbour34/
Compiling 'grid_2.prg'...
grid_2.prg:99: error E0020  Incomplete statement or unbalanced delimiters
grid_2.prg:101: error E0030  Syntax error "syntax error at ','"
grid_2.prg:102: error E0030  Syntax error "syntax error at '}'"
3 errors


Primeira coisa: olhar as linhas no fonte

    oServer:CreateTable('Test', {{'col1', 'N', 6, 0},;

                                 {'col2', 'C', 40,0},;

                                 {'col3', 'D', 8, 0}})


O que tem de errado?
se tem ponto e vírgula, é porque continua na linha de baixo.
Mas... pelo jeito tá pulando uma linha, e não deveria pular.
Então... apagar essas linhas a mais.

Após a correção, deu falta de funções, mas deu a dica:
hbmk2: Hint: Install package hbpgsql and input file 'hbpgsql.hbc' for missing
       Harbour function(s): TPQServer()
hbmk2: Hint: Add input file 'xhb.hbc' for missing Harbour function(s):
       ValToPrg()


Provavelmente é a lib de postgres, e a lib de compatibilidade xHarbour...
Não uso Postgres, não tenho essa LIB, então.... apenas considerar que está tudo ok.

Também é função do programador enxergar se o exemplo interessa, e se tem a LIB que precisa.
Mas se não uso Postgres, e nem pretendo usar, não me interessa o exemplo, não vou perder tempo gerando biblioteca opcional.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 03 Jan 2021 21:33

Isso é importante também:

O Harbour tem a lib pra postgres.
Pra ela ser gerada, precisa de um ou mais arquivos do Postgres, talvez arquivos .H, talvez a .DLL, sei lá.
Precisa dela? Só se usar Postgres.
E o exemplo da hwgui é pra isso.

Se não pretende mexer com isso, esqueça o exemplo.

É problema da LIB? é problema do Harbour?
É que os arquivos de Postgres podem ter direitos autorais, ou podem ser diferentes pra cada versão de Postgres, ou pra cada versão de linguagem C.
Então... os interessados vão procurar detalhes, sobre como gerar e sobre tudo que precisa pra usar.

Essas são coisas básicas, ou nem tanto, mas que o programador deveria saber.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 06 Jan 2021 14:59

Mais outra, talvez importante, talvez não.

Se baixar os fontes do github pelo sofware GIT, fica fácil atualizar.

Por exemplo:

git clone https://github.com/harbour/core harbour32
git clone https://github.com/vszakats/hb harbour34

depois, pra atualizar, é só ir dentro da pasta que quer atualizar:

git pull

Não vai ter apenas os fontes, mas TODA HISTÓRIA.
E pode trocar de versão a qualquer momento, se quiser uma versão anterior do Harbour.
Vai ter que recompilar, lógico, mas vai ter todas na mão, sem ter que ficar procurando versões anteriores.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 08 Jan 2021 13:55

Mais uma:

Se usa um Harbour pra compilar, não tem porque deixar várias versões de Harbour na máquina.
Isso só seria válido numa fase de troca de uma versão pra outra.
Procure não deixar ferramentas repetidas, senão nem vai saber mais o que está usando.

Usa Harbour 3.2 e vai trocar pra 3.4....
Nessa hora, tem os dois.
Assim que tudo estiver funcionando com 3.4, já apaga o 3.2 pra não atrapalhar.
O contrário também, se está indo do 3.4 para o 3.2.

Pra que deixar alguma coisa que não usa? pra complicar?
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor microvolution » 08 Jan 2021 15:44

JoséQuintas escreveu:Pra que deixar alguma coisa que não usa?
cada um tem uma visão. Eu, tenho tudo arquivado, desde que comprei o primeiro computador. Até meu sistema, tenho todas as versões desde que o fiz em 1998.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 08 Jan 2021 16:12

microvolution escreveu:cada um tem uma visão. Eu, tenho tudo arquivado, desde que comprei o primeiro computador. Até meu sistema, tenho todas as versões desde que o fiz em 1998.


Eu também, mas arquivado mesmo, ou em DVD ou em pasta que não atrapalhe.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

2021 - Você é programador ou não é?

Mensagempor microvolution » 08 Jan 2021 18:46

JoséQuintas escreveu:arquivado mesmo
cada um do seu jeito, mas, que funcione.
JoséQuintas escreveu:em DVD
já caí nessa ferramenta ultrapassada que perdi muita coisa. Pra mim, do meu jeito está bom e acredito ser o correto. Pra mim, pois pro outro de outro jeito tá bom, pra mim "tá bão tamém"!
kkk
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

2021 - Você é programador ou não é?

Mensagempor JoséQuintas » 08 Jan 2021 23:14

backup.png


Meu backup mais velho. Tem até Norton Antivírus 2005.
15 anos atrás.
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: 18008
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 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