Migrando para xHarbour / hbmake

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Migrando para xHarbour / hbmake

Mensagem por Minduim »

estou migrando do caclipper para xharbour / hbmake e ao compilar apenas um programa teste são anexadas algumas LIB que não constam da bilbioteca nem xharbour, nem bcc55:
optcon.lib
dbfdbt.lib

alguem pode me orientar

Minduim
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Migrando para xHarbour / hbmake

Mensagem por gvc »

Poste o seu código fonte para que nós façamos os testes.
O DBFDBT deve ser a lib de controle de arquivo MEMO.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Re: Migrando para xHarbour / hbmake

Mensagem por Minduim »

obrigado pela sua atenção;

o programa teste em questão foi o mais simples possível:

FUNCTION MAIN()
? "TESTE"
RETURN

andei navegando por sites e notei que estas LIB estão presentes nos processos de compilação de outros colegas, mas não constam das
bibliotecas em meu sistema, será que estas LIB constam em versões mais antigas dos compiladores e foram suprimidas na ultima versão?

Amauri
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Migrando para xHarbour / hbmake

Mensagem por sygecom »

Qual versão do xHarbour ? post o script do hbmake (.BC)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Re: Migrando para xHarbour / hbmake

Mensagem por Minduim »

obrigado pela atenção;

harbour 1.2.1
borland C++ 5.5.1
hbmake 03/04/2004

sintaxe: hbmake teste.bc -ex -f


segue abaixo o contudo do arquivo teste.bc:

#BCC
VERSION=BCB.01
!ifndef BCB
BCB = $(MAKEDIR)
!endif

!ifndef BHC
BHC = $(HMAKEDIR)
!endif

RECURSE= NO

COMPRESS = YES
EXTERNALLIB = NO
XFWH = NO
FILESTOADD = 5
WARNINGLEVEL = 0
USERDEFINE =
USERINCLUDE =
GUI = NO
MT = NO
SRC02 = obj
PROJECT = teste.exe $(PR)
OBJFILES = $(SRC02)\teste.obj $(OB)
PRGFILES = teste.prg $(PS)
OBJCFILES = $(OBC)
CFILES = $(CF)
RESFILES =
RESDEPEN =
TOPMODULE = teste.prg
LIBFILES = optcon.lib bcc640.lib lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib dbfdbt.lib common.lib gtwin.lib codepage.lib
DEFFILE =
HARBOURFLAGS = -m -w0
CFLAG1 = -OS $(CFLAGS) -d -L$(BHC)\lib;$(FWH)\lib -c -I
CFLAG2 = -I$(BHC)\include;$(BCB)\include
RFLAGS =
LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib;$(BHC)\lib -Gn -M -m -s -Tpe -ap
IFLAGS =
LINKER = ilink32

ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(LIBFILES) import32.lib cw32.lib
.autodepend

#COMMANDS
.cpp.obj:
$(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**

.c.obj:
$(BCB)\BIN\bcc32 -I$(BHC)\include $(CFLAG1) $(CFLAG2) -o$* $**

.prg.obj:
$(BHC)\bin\harbour -n -go -I$(BHC)\include $(HARBOURFLAGS) -o$* $**

.rc.res:
$(BCB)\BIN\brcc32 $(RFLAGS) $<

#BUILD

$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
$(BCB)\BIN\$(LINKER) @&&!
$(LFLAGS) +
$(ALLOBJ), +
$(PROJECT),, +
$(ALLLIB), +
$(DEFFILE), +
$(ALLRES)
!



Minduim
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Migrando para xHarbour / hbmake

Mensagem por gvc »

Eu uso o xHarbour 1.1.0 e não foi colocado no .BC nenhum desses arquivos que vc informou.
Alias:
hbmake teste.bc -ex (Vc vai criar/editar o arquivo BC)
hbmake teste.bc -f (Compilação forçada. Compila todos os PRG do sistema)

Eu não sei o resultado de colocar os dos parâmetros na mesma linha.

Este é o .BC que o meu sistema criou.

Vc marcou algum parâmetro diferente na hora de montar o arquivo BC?

Código: Selecionar todos

#BCC
VERSION=BCB.01
!ifndef CC_DIR
CC_DIR = $(MAKE_DIR)
!endif

!ifndef HB_DIR
HB_DIR = $(HARBOUR_DIR)
!endif
 
RECURSE= NO 
 
SHELL = 
COMPRESS = NO
EXTERNALLIB = NO
XFWH = NO
FILESTOADD =  5
WARNINGLEVEL =  0
USERDEFINE = 
USERINCLUDE = 
USERLIBS = 
EDITOR = edit
GUI = NO
MT = NO
SRC02 = obj 
PROJECT = teste2.exe $(PR) 
OBJFILES = $(SRC02)\TESTE2.obj $(OB) 
PRGFILES = TESTE2.PRG $(PS) 
OBJCFILES = $(OBC) 
CFILES = $(CF)
RESFILES = 
RESDEPEN = 
TOPMODULE = TESTE2.PRG
LIBFILES = lang.lib vm.lib rtl.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib gtwin.lib codepage.lib ct.lib tip.lib pcrepos.lib hsx.lib hbsix.lib debug.lib 
EXTLIBFILES =
DEFFILE = 
HARBOURFLAGS =  -b  -w0
CFLAG1 =  -OS $(SHELL)  $(CFLAGS) -d -c -L$(HB_DIR)\lib 
CFLAG2 =  -I$(HB_DIR)\include;$(CC_DIR)\include
RFLAGS = 
LFLAGS = -L$(CC_DIR)\lib\obj;$(CC_DIR)\lib;$(HB_DIR)\lib -Gn -M -m -s -Tpe -x -ap
IFLAGS = 
LINKER = ilink32
 
ALLOBJ = c0x32.obj $(OBJFILES) $(OBJCFILES)
ALLRES = $(RESDEPEN)
ALLLIB = $(USERLIBS) $(LIBFILES) import32.lib cw32.lib
.autodepend
 
#DEPENDS
 
#COMMANDS
.cpp.obj:
$(CC_DIR)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
 
.c.obj:
$(CC_DIR)\BIN\bcc32 -I$(HB_DIR)\include $(CFLAG1) $(CFLAG2) -o$* $**
 
.prg.obj:
$(HB_DIR)\bin\harbour -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -o$* $**
 
.rc.res:
$(CC_DIR)\BIN\brcc32 $(RFLAGS) $<
 
#BUILD
 
$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
    $(CC_DIR)\BIN\$(LINKER) @&&!  
    $(LFLAGS) +
    $(ALLOBJ), +
    $(PROJECT),, +
    $(ALLLIB), +
    $(DEFFILE), +
    $(ALLRES) 
!
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Migrando para xHarbour / hbmake

Mensagem por Minduim »

obrigado pela atençao;

independente da forma como executo a compilação, o arquivo .bc permanece o mesmo e a mensagem de erro tambem;

creio que os .ddl que o compilador esta pedindo, tem a ver com a versão do windows (7) ou algum periférico acoplado ao equipamento;

você teria como disponibilizar a verção 1.1.0 do xharbour?
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Migrando para xHarbour / hbmake

Mensagem por gvc »

Coloquei na sessão de Download.
Falta a liberação do administrador do forum.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Migrando para xHarbour / hbmake

Mensagem por Toledo »

gvc escreveu:Falta a liberação do administrador do forum.
Não tem nenhum arquivo para liberação na seção download!

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Migrando para xHarbour / hbmake

Mensagem por gvc »

Mandei novamente. (ou é a primeira. sei lá!)

[Minduim]
Mande um eMial para gvcortez@uol.com.br que eu te envio os arquivos.

[Toledo]
Se não estiver lá novamente, mande-me um eMail que eu te envio os arquivos para vc postar nos download.
Mas desta vez eu imprimi a tela de aviso que diz para aguardar liberação dos moderadores. Eu ainda não estou maluco!!! (só o medico falou que é para tomar 2 azuis e 1 amarelinha todos os dias) eh.eh.eh.

Boa sorte a todos.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Migrando para xHarbour / hbmake

Mensagem por Minduim »

gvc,

baixei o arquivo que você postou no forum, processei a instalação e executei a compilação do arquivo teste e não apresentou nenhum erro;

entendo que versão que 1.2.1 deve estar algum problema;

ao compilar minha aplicação apareceram alguns comandos não reconhecidos pelo harbour:

com_close()
com_open(0
com_init()
com_dtr()
com_flush()
com_sflush()
com_send()
com_read()
com_num()
numfiles()
filesmax()
osver()
biosdate()
cputype()
pctype()
mensize()
numdiskf()
numdiskh()
numprinter()
stackfree()
csetdefa()

por gentileza, você poderia me orientar em mais esta dificuldade;

novamente agradeço a atenção;

minduim
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Migrando para xHarbour / hbmake

Mensagem por gvc »

Se vc esta compilando o exemplo postado anteriormente, apague todos os arquivos objeto (*.obj) pela versão que vc usava.
Eu costumo mandar compilar forçado para garantir que compila tudo mesmo.
hbmake <arquivo.bc> -f

Isso parece (não sei ao certo) ser funções de uma versão mais nova do xH.

Ah! Nas "Opções do xHarbour" eu costumo marcar "Info. Debug /b". Isso evitou algumas mensagens de erro.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Minduim
Usuário Nível 2
Usuário Nível 2
Mensagens: 59
Registrado em: 06 Abr 2011 13:02
Localização: Santo andré - SP

Migrando para xHarbour / hbmake

Mensagem por Minduim »

gvc,

me perdoe, entendo que não fui claro em minha ultima observação;

a aplicação que apresentou estes comandos não encontrados, são de um programa que estou desenvolvendo;

os comandos apresentados estão relacionados com a verificação e utilização das portas COM , verificação de impressoras e busca de informações da maquina e do sistema operacional;

minduim
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Migrando para xHarbour / hbmake

Mensagem por Jairo Maia »

Olá Minduim,

Não sou experiente em xHarbour/Harbour, sou iniciante. Mas está me parecendo que a lib que vc está usando é 16 bits. Se for isso, mesmo estando declarada em seu script, ela não é lida pelo xHarbour.

Supondo que seja isso, vc precisa usar uma versão atualizada em 32 bits. Se isso não for possível, será necessário usar comandos similares do próprio xHarbour, ou alguma lib substituta.

Por dedução, varias funções faltantes (que vc postou acima) é possível saber o que faz, mas se vc puder explicar a função de cada uma, talvez tenha comandos nativos do xHarbour para substitui-las.

p.ex:
com_close() // Fecha a porta COM
com_open() // Abre a porta COM
etc...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Migrando para xHarbour / hbmake

Mensagem por rochinha »

Amiguinhos

Minduim
Voce esta desenvolvendo uma aplicação usando xHarbour com codigo totalmente novo e usando somente as bibliotecas do mesmo ou esta re-utilizando código de aplicativo Clipper.

A biblioteca do mundo Harbour que tem comandos de acesso a portas com é chamada de HBCOM. Veja se ela exista na pasta LIB e se esta na criação de seu .BC.

Segiro não usar nenhuma biblioteca do antigo Clipper mesmo que tenham nomes parecidos, pois as mesmas, como já falado anteriormente, são de 16bits.

Em tempo, para saber quais funções e seus nomes constam de uma biblioteca voce pode usar a ExplorerLIB que visualiza arquivos .LIB e mostra os nomes das funções existentes em seu conteúdo, permitindo agregar/retirar .OBJs(não aconselho fazer isto) como os antigos aplicativos TLIB.EXE e MSLIB.EXE.

No pequeno trecho abaixo voce pode ver alguns comandos de manuseio de portas usando as bibliotecas de COMMunicação do Harbour.

Código: Selecionar todos

/////////////////////////////////////////////////////////////////////////////
//
// SAT - Funcoes Compativeis com SAT
//
//         Autor: Jose Carlos da Rocha
//          Data: 12/06/2010
//         Email: contato@5volution.com.br
//           MSN: fivolution@hotmail.com
//     Linguagem: xBase
//       Prefixo: SAT_
//   Plataformas: DOS, Windows
// Requerimentos: Harbour/xHarbour( Para uso com Clipper eliminar Prefixo )
//     Protocolo:
//       ESC.00 : Inicio da Comunicacao
//       ESC.I  : Inicio da Transmissao
//       S04    : Conteudo, comandos
//       ESC.F  : Fim da Transmissao
//       ESC.99 : Fim da Comunicacao
//
/////////////////////////////////////////////////////////////////////////////
#include "Fivewin.ch" 

FUNCTION MAIN( cComm ) 
    LOCAL oDlg 
    LOCAL oGet, cTxt := "" 
    LOCAL nCom 
    DEFAULT cComm := "COM5"
    DEFINE DIALOG oDlg; 
           SIZE 500, 500; 
           TITLE "S@T ("+cComm+")"
    @ 0, 0 GET oGet VAR cTxt MEMO READONLY 
    oGet:bKeyDown = { | nKey | Tasti( nCom, nKey ) } 
    ACTIVATE DIALOG oDlg ; 
             ON INIT ( oGet:AdjClient(),; 
                       nCom := APRICOM( oDlg, oGet, cComm ),; 
                       IF( nCom < 0, oDlg:End(), ) ); 
             CENTER 
    IF nCom >= 0; CLOSECOMM( nCom ); ENDIF 
    RETURN NIL 

STATIC FUNCTION TASTI( nCom, nKey ) 
    SENDSTR( nCom, CHR( nKey ) ) 
    RETURN NIL 

STATIC FUNCTION APRICOM( oDlg, oGet, cComm ) 
    LOCAL nCom, cDcb 
    BEGIN SEQUENCE 
        nCom = OPENCOMM( cComm, 16384, 16384 ) 
        IF nCom < 0 
            oGet:Append( "Erro de abertura da porta de comunicacao." )
            BREAK 
        ENDIF 
        BUILDCOMMDCB( cComm+":115200,N,8,1", @cDcb ) 
        IF !SETCOMMSTATE( nCom, cDcb ) 
            oGet:Append( "Erro de configuracao da porta de comunicacao." )
            BREAK 
        ENDIF 
        oDlg:bCommNotify = { | nCom | Connect( nCom, oGet ),; 
                                      EnableCommNotification( nCom, oDlg:hWnd, 1, -1 ) } 
        IF !ENABLECOMMNOTIFICATION( nCom, oDlg:hWnd, 1, -1 ) 
            oGet:Append( "Erro de abilitacao de notificacao." )
            BREAK 
        ENDIF 
    RECOVER 
        nCom = -1 
    END SEQUENCE 
    RETURN nCom 

STATIC FUNCTION CONNECT( nCom, oGet ) 
    LOCAL cStr 
    ENABLECOMMNOTIFICATION( nCom, 0, 1, -1 ) 
    cStr = RECEIVESTR( nCom ) 
    cStr = STRTRAN( cStr, CHR( 13 ), "" ) 
    cStr = STRTRAN( cStr, CHR( 10 ), CRLF ) 
    oGet:Append( cStr ) 
    RETURN NIL 

STATIC FUNCTION SENDSTR( nCom, cString ) 
    LOCAL nBytes := WRITECOMM( nCom, cString ) 
    RETURN nBytes = LEN( cString ) 

STATIC FUNCTION RECEIVESTR( nCom ) 
    LOCAL cBuf := SPACE( 1000 ) 
    RETURN LEFT( cBuf, READCOMM( nCom, @cBuf ) )
Isto faz parte de um projeto experimental onde simulei um ambiente S@T-Fiscal.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder