Página 1 de 2
Migrando para xHarbour / hbmake
Enviado: 06 Abr 2011 13:14
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
Re: Migrando para xHarbour / hbmake
Enviado: 07 Abr 2011 13:10
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.
Re: Migrando para xHarbour / hbmake
Enviado: 07 Abr 2011 17:45
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
Re: Migrando para xHarbour / hbmake
Enviado: 07 Abr 2011 20:58
por sygecom
Qual versão do xHarbour ? post o script do hbmake (.BC)
Re: Migrando para xHarbour / hbmake
Enviado: 08 Abr 2011 09:46
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
Re: Migrando para xHarbour / hbmake
Enviado: 25 Abr 2011 13:54
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)
!
Migrando para xHarbour / hbmake
Enviado: 20 Mai 2011 16:08
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?
Migrando para xHarbour / hbmake
Enviado: 25 Mai 2011 16:39
por gvc
Coloquei na sessão de Download.
Falta a liberação do administrador do forum.
Migrando para xHarbour / hbmake
Enviado: 26 Mai 2011 18:10
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,
Migrando para xHarbour / hbmake
Enviado: 27 Mai 2011 13:18
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.
Migrando para xHarbour / hbmake
Enviado: 01 Jun 2011 09:01
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
Migrando para xHarbour / hbmake
Enviado: 01 Jun 2011 18:53
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.
Migrando para xHarbour / hbmake
Enviado: 02 Jun 2011 09:07
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
Migrando para xHarbour / hbmake
Enviado: 02 Jun 2011 11:50
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...
Migrando para xHarbour / hbmake
Enviado: 05 Jun 2011 22:36
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.