Usando (x)Harbour e LIBs
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
Parece que isso ainda causa confusão.
Tinha o Clipper.
O Clipper era compilado com determinada linguagem C.
Precisávamos LIBs compativeis com o Clipper/linguagem C já embutida no Clipper.
Tem o xHarbour.
Podemos usar, por exemplo, com BCC.
Se quisermos usar fivewin, vamos precisar das LIBs do fivewin pra xHarbour+Bcc
Tem o Harbour
Podemos usar, por exemplo, com BCC
Se quisermos usar fivewin, precisamos das LIBs do fivewin pra Harbour + BCC
O Harbour tem o HBMK2 que facilita compilação.
Ele não faz mágica, ele vai precisar por exemplo, do Harbour, compilador BCC, e LIBs do fivewin pra Harbour+BCC
O mesmo acontece com HMG, HMG Extended, GTWVG, HWGUI, QT, etc.
O conjunto INTEIRO precisa ser compatível.
Deve ser levado em conta pra compatibilidade:
- Harbour 3.2, 3.4 ou xHarbour
- Compilador C - msvc, bcc, mingw
- Biblioteca: o que ela aceita dos ítens acima
O resto... alguma incompatilidade adicional, dá-se um jeito
Então vamos lá, do que conheço:
Harbour 3.4: Não aceita BCC, então não adianta querer usar BCC ou LIB que só aceite BCC
HMG: Não aceita MSVC, então não adianta querer usar MSVC
OOHG: Não aceita MSVC 2010, então não adianta querer usar MSVC 2010
LIBUI: Só aceita MSVC 2013
Fivewin liberado grátis: só aceita BCC e talvez só xHarbour (sinceramente não sei se tem pra Harbour)
Quer usar esse fivewin grátis? se só aceita xHarbour e BCC, não adianta querer usar no Harbour, ou mingw, ou msvc
Quer usar HMG? não adianta Harbour com msvc
Quer usar lIBUI? só se usar msvc 2013
Tem Harbour e mingw:
Ok, pode usar HMG, HMG Extended, OOHG, HWGUI.
E talvez precise ajustar diferenças entre Harbour 3.2 e 3.4, dependendo do Harbour que queira usar.
É todo conjunto que deve ser analisado.
Como usar Harbour + LIB:
Isso é tradicional:
Seus fontes: poderia indicar *.prg
os arquivos de include: indicar a pasta aonde eles estão, pode ser mais de uma
as LIBs: indicar o nome da lib e a pasta, pode ser mais de uma
Exemplos:
hbmk2 \aplicativo\*.prg -i\hmg\include -lhmg3-L\hmg\lib
fivewin tem 3 libs, ok, indicar as tres libs, mas todas estão na mesma pasta:
hbmk2 \aplicativo\*.prg -i\hwgui\include -lhwgui -lprocmis -lxml -L\hwgui\lib
gtwvg tem um arquivo pronto que já indica tudo o gtwvg.hbc
hbmk2 \aplicativo\*.prg gtwvg.hbc
Não há como fugir disso:
é indicar pastas de include, pastas de lib, e nomes de libs.
tudo precisa estar na mesma versão de compilador (x)Harbour, e na mesma versão de compilador C.
Importante também:
Não basta pegar um Harbour pronto e colocar o compilador C que quiser.
Também precisa das LIBs do Harbour compatíveis com esse compilador C.
Se o Harbour veio pronto pra mingw, é pra mingw que ele está pronto, e tem LIBs pra mingw.
E importante:
Como dá pra perceber, a variação de combinações pode ser grande.
Eu mesmo, não faço a menor idéia do que é preciso pra usar XHarbour, e nem me importo, porque NÃO USO XHarbour.
Cada um deve conhecer o que usa.
Mas deve conhecer esse conceito básico, para o caso de querer trocar as ferramentas de uso.
É preciso ter todo conjunto compatível.
Tinha o Clipper.
O Clipper era compilado com determinada linguagem C.
Precisávamos LIBs compativeis com o Clipper/linguagem C já embutida no Clipper.
Tem o xHarbour.
Podemos usar, por exemplo, com BCC.
Se quisermos usar fivewin, vamos precisar das LIBs do fivewin pra xHarbour+Bcc
Tem o Harbour
Podemos usar, por exemplo, com BCC
Se quisermos usar fivewin, precisamos das LIBs do fivewin pra Harbour + BCC
O Harbour tem o HBMK2 que facilita compilação.
Ele não faz mágica, ele vai precisar por exemplo, do Harbour, compilador BCC, e LIBs do fivewin pra Harbour+BCC
O mesmo acontece com HMG, HMG Extended, GTWVG, HWGUI, QT, etc.
O conjunto INTEIRO precisa ser compatível.
Deve ser levado em conta pra compatibilidade:
- Harbour 3.2, 3.4 ou xHarbour
- Compilador C - msvc, bcc, mingw
- Biblioteca: o que ela aceita dos ítens acima
O resto... alguma incompatilidade adicional, dá-se um jeito
Então vamos lá, do que conheço:
Harbour 3.4: Não aceita BCC, então não adianta querer usar BCC ou LIB que só aceite BCC
HMG: Não aceita MSVC, então não adianta querer usar MSVC
OOHG: Não aceita MSVC 2010, então não adianta querer usar MSVC 2010
LIBUI: Só aceita MSVC 2013
Fivewin liberado grátis: só aceita BCC e talvez só xHarbour (sinceramente não sei se tem pra Harbour)
Quer usar esse fivewin grátis? se só aceita xHarbour e BCC, não adianta querer usar no Harbour, ou mingw, ou msvc
Quer usar HMG? não adianta Harbour com msvc
Quer usar lIBUI? só se usar msvc 2013
Tem Harbour e mingw:
Ok, pode usar HMG, HMG Extended, OOHG, HWGUI.
E talvez precise ajustar diferenças entre Harbour 3.2 e 3.4, dependendo do Harbour que queira usar.
É todo conjunto que deve ser analisado.
Como usar Harbour + LIB:
Isso é tradicional:
Seus fontes: poderia indicar *.prg
os arquivos de include: indicar a pasta aonde eles estão, pode ser mais de uma
as LIBs: indicar o nome da lib e a pasta, pode ser mais de uma
Exemplos:
hbmk2 \aplicativo\*.prg -i\hmg\include -lhmg3-L\hmg\lib
fivewin tem 3 libs, ok, indicar as tres libs, mas todas estão na mesma pasta:
hbmk2 \aplicativo\*.prg -i\hwgui\include -lhwgui -lprocmis -lxml -L\hwgui\lib
gtwvg tem um arquivo pronto que já indica tudo o gtwvg.hbc
hbmk2 \aplicativo\*.prg gtwvg.hbc
Não há como fugir disso:
é indicar pastas de include, pastas de lib, e nomes de libs.
tudo precisa estar na mesma versão de compilador (x)Harbour, e na mesma versão de compilador C.
Importante também:
Não basta pegar um Harbour pronto e colocar o compilador C que quiser.
Também precisa das LIBs do Harbour compatíveis com esse compilador C.
Se o Harbour veio pronto pra mingw, é pra mingw que ele está pronto, e tem LIBs pra mingw.
E importante:
Como dá pra perceber, a variação de combinações pode ser grande.
Eu mesmo, não faço a menor idéia do que é preciso pra usar XHarbour, e nem me importo, porque NÃO USO XHarbour.
Cada um deve conhecer o que usa.
Mas deve conhecer esse conceito básico, para o caso de querer trocar as ferramentas de uso.
É preciso ter todo conjunto compatível.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
E se esquecer de alguma coisa...
A linquedição vai reclamar do que falta (ou sobra).
É olhar as mensagens de erro do que falta, e tentar identificar ao que pertence.
o HBMK2 dá uma ajuda nisso, se fizer parte das LIBs do Harbour.
O que não fizer parte do Harbour, cabe a você identificar.
Vai acrescentando no HBP, até não reclamar de mais nada.
pode ser arquivo, pode ser indicação de pasta, pode ser algum parâmetro a mais.
Tudo depende da mensagem que aparecer depois.
Se está testando um exemplo em HWGUI.... ja sabemos que vai precisar pasta de include da hwgui, nomes das libs da hwgui, e pasta das libs da hwgui.
Não é tão complicado, basta seguir o que aparece nas mensagens de erro.
E o que sobrar, de repente pesquisar no HD se tem aquele nome em algum lugar.
A linquedição vai reclamar do que falta (ou sobra).
É olhar as mensagens de erro do que falta, e tentar identificar ao que pertence.
o HBMK2 dá uma ajuda nisso, se fizer parte das LIBs do Harbour.
O que não fizer parte do Harbour, cabe a você identificar.
Vai acrescentando no HBP, até não reclamar de mais nada.
pode ser arquivo, pode ser indicação de pasta, pode ser algum parâmetro a mais.
Tudo depende da mensagem que aparecer depois.
Se está testando um exemplo em HWGUI.... ja sabemos que vai precisar pasta de include da hwgui, nomes das libs da hwgui, e pasta das libs da hwgui.
Não é tão complicado, basta seguir o que aparece nas mensagens de erro.
E o que sobrar, de repente pesquisar no HD se tem aquele nome em algum lugar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
E tem os imprevistos.
HWGUI pode ser usada com msvc2010, mas se for adicionado o contrib\activex, já não pode mais, porque essa contribuição não compila com msvc2010.
Fiz o teste agora com mingw e msvc 2010:
HWGUI somente mingw
OOHG somente mingw
HMG3 somente mingw
HMG Extended: mingw ou msvc 2010:
Se retirar algumas contribs de hwgui, ok com msvc2010
Por isso acaba sendo interessante usar mingw, por ser mais "universal".
E por isso confundo o que realmente faz parte de cada lib, já que tem contrib de hwgui que não compila com msvc2010.
No caso da allgui, tá visível o resultado.
Uso Harbour 3.4, que não aceita bcc, então nem testei com bcc.
hmg3 = hmg 3.4.3
hmgs = hmg extended
hwgui = hwgui 2.20
oohg
HWGUI pode ser usada com msvc2010, mas se for adicionado o contrib\activex, já não pode mais, porque essa contribuição não compila com msvc2010.
Fiz o teste agora com mingw e msvc 2010:
HWGUI somente mingw
OOHG somente mingw
HMG3 somente mingw
HMG Extended: mingw ou msvc 2010:
Se retirar algumas contribs de hwgui, ok com msvc2010
Por isso acaba sendo interessante usar mingw, por ser mais "universal".
E por isso confundo o que realmente faz parte de cada lib, já que tem contrib de hwgui que não compila com msvc2010.
No caso da allgui, tá visível o resultado.
Uso Harbour 3.4, que não aceita bcc, então nem testei com bcc.
Código: Selecionar todos
Pasta de d:\CVSFiles\allgui\lib\win\msvc
26/03/2017 19:17 <DIR> .
26/03/2017 19:17 <DIR> ..
26/03/2017 19:17 4.574.854 hmgs.lib
Pasta de d:\CVSFiles\allgui\lib\win\mingw
26/03/2017 19:31 <DIR> .
26/03/2017 19:31 <DIR> ..
26/03/2017 19:25 2.048.066 libhmg3.a
26/03/2017 19:28 2.562.864 libhmgs.a
26/03/2017 19:29 1.341.406 libhwgui.a
26/03/2017 19:31 2.223.496 liboohg.a
hmgs = hmg extended
hwgui = hwgui 2.20
oohg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Usando (x)Harbour e LIBs
Quintas,
Na versão 2.17 a activex compila com MSVC 2010
Na versão 2.17 a activex compila com MSVC 2010
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Usando (x)Harbour e LIBs
Quintas,
Sei que a versão atual da HwGui é 2.20, mas não consegui reproduzir o funcionamento que eu tenho na 2.17, relacionado a mudança automática de campo get com enter e no último get o enter dar o foco para o botão Ok é isso que queria que funciona-se como na 2.17
Sei que a versão atual da HwGui é 2.20, mas não consegui reproduzir o funcionamento que eu tenho na 2.17, relacionado a mudança automática de campo get com enter e no último get o enter dar o foco para o botão Ok é isso que queria que funciona-se como na 2.17
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
Chegou a tentar comparar as mudanças como falei em outro post?
Ou postou no fórum de hwgui?
Ou postou no fórum de hwgui?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
Tentei achar o outro post mas não encontrei.
Lembro que era algo relacionado a um parâmetro CLIPPER.
Se for isso, a 2.18 já tinha, o que pode facilitar a pesquisa.
Lembro que era algo relacionado a um parâmetro CLIPPER.
Se for isso, a 2.18 já tinha, o que pode facilitar a pesquisa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando (x)Harbour e LIBs
Fiz a montagem no github pra obter diferença entre versões.
Agora é tentar identificar essa mudança que está dizendo.
Pode salvar local e verificar pelo git windows.
https://pctoledo.org/forum/viewto ... 02#p114802
Agora é tentar identificar essa mudança que está dizendo.
Pode salvar local e verificar pelo git windows.
https://pctoledo.org/forum/viewto ... 02#p114802
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Usando (x)Harbour e LIBs
Quintas,
Ai entra a questão do legado que foi descartado nos obrigando a alterar o código para fazer o que a versão anterior fazia.
Imagina você ter um usuário que tá acostumado com enter, enter e enter e agora dizer pra ele que no último get vai quer que usar o mouse, parece simples mas tem usuário que é chato, imagina 1000 usuários e 100 reclamando, rs
A minha validação está no botão Ok, por isso eu não me preocupo com o que o usuário digitou no botão Ok valido tudo no botão e volto o foco onde está errado.
Ai entra a questão do legado que foi descartado nos obrigando a alterar o código para fazer o que a versão anterior fazia.
Imagina você ter um usuário que tá acostumado com enter, enter e enter e agora dizer pra ele que no último get vai quer que usar o mouse, parece simples mas tem usuário que é chato, imagina 1000 usuários e 100 reclamando, rs
A minha validação está no botão Ok, por isso eu não me preocupo com o que o usuário digitou no botão Ok valido tudo no botão e volto o foco onde está errado.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
