Página 1 de 2
Como criar LIB de funções usando a IDE HMG 3
Enviado: 30 Ago 2014 15:03
por NiltonGM
Amigos,
Como criar minha LIB com minhas funções compilando com Harbour e usa-las no projeto usando HMG-IDE UNICODE 1.0.6?
Grato
Como criar LIB de funções usando a IDE HMG 3
Enviado: 30 Ago 2014 16:01
por Pablo César
Oi Nilton,
Quando falamos de IDE, apenas é uma ferramenta para compilação ou para elaboração de formulários, relatórios ou manutenção de DBFs na HMG.
Você pode criar um prg con as funções que o projeto iria utilizar. O mesmo se aplica com o arquivo de biblioteca, só que em HMG esse arquivo tem extensão .a e não .lib.
Então deve ser criada com o compilado MiniGW e não com BCC como normalmente é usado com Minigui Extended.
Como criar LIB de funções usando a IDE HMG 3
Enviado: 30 Ago 2014 16:16
por NiltonGM
Oi Pablo,
Estou colocando minhas funções em um prg tipo utilitarios.prg, a medida que projeto vai crescendo está ficando complicado manter um monte de prg só de funções na IDE módulos, eu queria compilar cada função em um prg e agrupar em uma só lib, como eu crio a MinhaLib.a ?
No clipper após compilar os PRG's eu usava o FLIB.EXE para juntar os OBJ em uma LIB. Como faço isso no HMG?
Como criar LIB de funções usando a IDE HMG 3
Enviado: 30 Ago 2014 19:23
por Toledo
Olá Nilton, para criar a sua própria LIB faça o seguinte:
1 - Criar um arquivo
COMPLIB.BAT com o seguinte conteúdo:
@echo off
SET HMGPATH=C:\hmg.3.3.1
SET PATH=%HMGPATH%\harbour\bin;%HMGPATH%\mingw\bin;%PATH%
hbmk2 %1 -i%HMGPATH%\include
echo.
pause
2 - Criar um arquivo HBP (por exemplo:
minhalib.hbp ) com o seguinte conteúdo:
-hblib
-onomedalib
-Iinclude
-w2 -es2
arquivo1.prg
arquivoN.prg
Onde está
nomedalib troque pelo nome que você quer dar para a sua lib e onde está
arquivo1.prg e
arquivoN.prg você vai relacionar o(s) arquivo(s) PRG da sua LIB.
3 - Para compilar, digite:
COMPLIB minhalib.hbp
Depois copie o arquivo *.a (libminhalib.a) para a pasta LIB da HMG.
4 - Na IDE, abra o seu projeto e incluir na aba
configuration:
libs=minhalib
Depois é só compilar o projeto.
Abraços,
Tags:
hblib
Como criar LIB de funções usando a IDE HMG 3
Enviado: 01 Set 2014 11:00
por NiltonGM
É disso que estou falando! rs
Valeu Toledo e muito obrigado.

)
Como criar LIB de funções usando a IDE HMG 3
Enviado: 01 Set 2014 12:04
por NiltonGM
Só mais uma dúvida Toledo ou Pablo, ao compilar os prg's da lib, ocorre o erro "Warning W0001 Ambiguous reference 'aqui aparece a variável não declarada (publica ou private do Main.prg)'
No clipper usamos o parâmetro -m para compilar ignorando esse erro, como faço em Harbour?
Como criar LIB de funções usando a IDE HMG 3
Enviado: 01 Set 2014 12:59
por NiltonGM
Amigos,
Resolvido, coloquei a velha declaração Menvar-> em todas as variáveis paraquedistas.
Lib criada com byte sucesso!
Abraços
Como criar LIB de funções usando a IDE HMG 3
Enviado: 03 Fev 2015 13:06
por jartos
Bom dia Mestres. Andei mais um pouco. Talvez agora tenha que postar no outro topico pois a duvida é sobre criar a lib .a Criei os arquivos conforme a explicacao do PC Toledo em seu topico ( viewtopic.php?f=45&t=15398&hilit=hblib#p90764 ) e deu o seguinte erro:
C:\hmg.3.0.35\LIB\mylib>hbmk2 htor2.hbp -iC:\hmg.3.0.35\include
hbmk2: Processando arquivo de configuração: C:\hmg.3.0.35\harbour\bin\hbmk.cfg
Not yet supported command line option: t
Error F0034 Bad command line option 'htorlib'
hbmk2: Erro: Executando o compilador Harbour (interno): 1
(C:\hmg.3.0.35\harbour\bin\harbour.exe) -n1 LOCKS.PRG L_HELP.PRG L_HELPMU.PRG L_
LBEEP.PRG L_LBLANK.PRG L_LBOX.PRG L_LBRO.PRG L_LCABPR.PRG L_LCLEAR.PRG L_LCOLOR.
PRG L_LDELAY.PRG L_LDTX.PRG L_LERRO.PRG L_LERROB.PRG L_LERROC.PRG L_LERROI.PRG L
_LEXT.PRG L_LFUNC.PRG L_LGET.PRG L_LGETAD.PRG L_LHELP.PRG L_LMENU.PRG L_LMENUB.P
RG L_LMSG24.PRG L_LMULT.PRG L_LMULTH.PRG L_LPAGIN.PRG L_LPRINT.PRG L_LRECAL.PRG
L_LREL.PRG L_LREWR.PRG L_LSEEK.PRG L_LSEMA.PRG L_LSENHA.PRG L_LTECLA.PRG L_LTELA
.PRG L_LUPDW.PRG L_LVALPA.PRG L_LVDATE.PRG -htorlib -w2 -es2 -iC:/hmg.3.0.35/har
bour/include -iinclude -iC:/hmg.3.0.35/include
Onde estou errando ? O Que é a opção T que se refere o erro ?
arquivo .hbp esta assim:
-hblib
-htorlib
-Iinclude
-w2 -es2
LOCKS.PRG
L_HELP.PRG
L_HELPMU.PRG
L_LBEEP.PRG
L_LBLANK.PRG
L_LBOX.PRG
Como criar LIB de funções usando a IDE HMG 3
Enviado: 03 Fev 2015 13:23
por Toledo
jartos escreveu:Onde estou errando ?
Amigo, faça o seguinte no seu arquivo HBP:
Procure por:
-htorlib
e troque por:
-otorlib
Abraços,
Como criar LIB de funções usando a IDE HMG 3
Enviado: 03 Fev 2015 16:55
por jartos
Muito bom PC Toledo.Resolvido o T. Agora já deu outro erro.
Tenho algumas variáveis declaradas como Private . O compilador não gostou.
Harbour 2.0.0 (Rev. 13372)
Copyright (c) 1999-2010,
http://www.harbour-project.org/
Compiling 'LOCKS.PRG'...
LOCKS.PRG(17) Warning W0001 Ambiguous reference 'AREA'
LOCKS.PRG(31) Warning W0001 Ambiguous reference 'AREA'
LOCKS.PRG(47) Warning W0001 Ambiguous reference 'AREA'
LOCKS.PRG(72) Warning W0001 Ambiguous reference 'AREA'
LOCKS.PRG(98) Warning W0001 Ambiguous reference 'AREA'
100
No code generated.
hbmk2: Erro: Executando o compilador Harbour (interno): 1
(C:\hmg.3.0.35\harbour\bin\harbour.exe) -n1 LOCKS.PRG L_HELP.PRG L_HELPMU.PRG L_
LBEEP.PRG L_LBLANK.PRG L_LBOX.PRG L_LBRO.PRG L_LCABPR.PRG L_LCLEAR.PRG L_LCOLOR.
PRG L_LDELAY.PRG L_LDTX.PRG L_LERRO.PRG L_LERROB.PRG L_LERROC.PRG L_LERROI.PRG L
_LEXT.PRG L_LFUNC.PRG L_LGET.PRG L_LGETAD.PRG L_LHELP.PRG L_LMENU.PRG L_LMENUB.P
RG L_LMSG24.PRG L_LMULT.PRG L_LMULTH.PRG L_LPAGIN.PRG L_LPRINT.PRG L_LRECAL.PRG
L_LREL.PRG L_LREWR.PRG L_LSEEK.PRG L_LSEMA.PRG L_LSENHA.PRG L_LTECLA.PRG L_LTELA
.PRG L_LUPDW.PRG L_LVALPA.PRG L_LVDATE.PRG -w2 -es2 -iC:/hmg.3.0.35/harbour/incl
ude -iinclude -iC:/hmg.3.0.35/include
Como criar LIB de funções usando a IDE HMG 3
Enviado: 03 Fev 2015 21:56
por Toledo
jartos escreveu:Tenho algumas variáveis declaradas como Private . O compilador não gostou.
Amigo, veja a 6ª e 7ª mensagem (acima) deste tópico.
Abraços,
Como criar LIB de funções usando a IDE HMG 3
Enviado: 05 Fev 2015 17:36
por jartos
Finalmente consegui Toledo! Só nao entendi porque as variáveis private tiveram que mudar para memvar. Tenho outra questão agora. Algumas funções da minha lib estão escritas em linguagem "C" , como faço para compilar junto na lib?
Sds,,,
Como criar LIB de funções usando a IDE HMG 3
Enviado: 09 Fev 2015 13:29
por jartos
Boa tarde mestres, preciso de vossa ajuda para colocar funções criadas em "C" em minha lib .a
Como devo proceder?
tenho os .obj e os fontes em "C"
EX:
#include "extend.h"
#include "bios.h"
CLIPPER l_isprn(void);
CLIPPER l_isprn()
{
unsigned dados;
_retl(_bios_printer(_PRINTER_STATUS,_parni(1)-1,dados)==0x90);
}
Como criar LIB de funções usando a IDE HMG 3
Enviado: 09 Fev 2015 16:24
por NiltonGM
Olá Jartos,
Essa você tirou do fundo do baú, me lembro vagamente a milhares de anos atrás quando compilava com Summer 87, um amigo criava em C os OBJ's e eu linkava, mas não consigo mais me lembrar como fazia isso, talvez não me lembre porque era algo simples como linkar o OBJ em "C" como um OBJ qualquer em clipper, posso estar errado.
Agora como linkar um OBJ com HMG não faço a menor ideia. Vamos aguardar uns feras aí do forum pra nos dizer.
Abraços.
Como criar LIB de funções usando a IDE HMG 3
Enviado: 09 Fev 2015 19:51
por Pablo César
Olá Jarbas,
Essa função _bios_printer como o nome indica deve verificar se a impressora está disponível e o faz através do INTerrupt 17.
Só queria esclarecer que esse tipo de verificação nos atuais sistemas operacionais (versão do Windows), não utilizam mais.
Na minha opinião, o conceito de direcionamento para impressão é feito de forma diferente que era antigamente. Portanto, acredito que não seja mais necessário fazer essa verificação. Por isso deverá avaliar a utilidade de cada função.
A ideia mais aceita na programação utilizando os novos SO é criar arquivos, sejam eels gráficos ou arquivo texto para posteriormente encaminhar para a fila de impressão.
Think about it !