coiote
-
Posts
30 -
Joined
-
Last visited
Posts posted by coiote
-
-
Mas eu não estou usando Fivewin, só Harbour 2.0
Há um equivalente?
-
Resolvi Instalar o Harbour 2.0 que peguei hoje no sourceforge:
http://sourceforge.net/projects/harbour ... z/download
Nenhuma variável de ambiente foi configurada ainda pois o "Hello world" compilou sem problemas. Apenas descompactei o Harbour 2 na pasta HB20.
Antes de iniciar a conversão do frente de loja para Fivewin quero converter os bancos de dados para Sql e imprimir cupons fiscais em modo console (que não é o foco deste forum) mas peço a ajuda dos colegas pois não há muitos forums xBASE e minha dúvida parece simples: por que o pequeno programa a seguir não compila?
Function Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Tentei gerar o X.exe desta maneira mas só gera o X.c:
\HB20\BIN\HBMK2 X.PRG
Deu os seguintes erros:
undefined reference to HB_FUN_LOADLIBRARY
undefined reference to HB_FUN_DLLCALL
O que está faltando?
-
Resolvi Instalar o Harbour 2.0 que peguei hoje no sourceforge:
http://sourceforge.net/projects/harbour ... z/download
Nenhuma variável de ambiente foi configurada ainda pois o "Hello world" compilou sem problemas. Apenas descompactei o Harbour 2 na pasta HB20.
Antes de iniciar a conversão do frente de loja para Fivewin quero converter os bancos de dados para Sql e imprimir cupons fiscais em modo console (que não é o foco deste forum) mas peço a ajuda dos colegas pois não há muitos forums xBASE e minha dúvida parece simples: por que o pequeno programa a seguir não compila?
Function Main()
h1:= LoadLibrary("Daruma32.dll")
ret:= dllcall(h1,32,"Daruma_FI_LeituraX")
Return
Tentei gerar o X.exe desta maneira mas só gera o X.c:
\HB20\BIN\HBMK2 X.PRG
Deu os seguintes erros:
undefined reference to HB_FUN_LOADLIBRARY
undefined reference to HB_FUN_DLLCALL
O que está faltando?
-
Já descobri que estes "unresolved external" são causados por chamadas às seguintes funções dentro do arquivo Dll.ch:
LOADLIBRARY()
GETRESOURCES()
SETHANDLECOUNT()
FREELIBRARY()
TSAY() Esta não está nem em Fivewin.ch e nem em Dll.ch
GETPROCADRESS()
CALLDLL()
Imagino que falta incluir alguma lib para que estas funções sejam reconhecidas pelo Borland Turbo Incremental Link 5.0
Se for isso mesmo que LIB é esta?
Já tentei com o Harbour 1.0 e 2.0 usando Build.bat e Fivewin 6.12
-
Isto eu já fiz. Agora faltam mais algumas declarações do tipo DLL32 FUNCTION.
Uso Harbour 2.0.0 mas os mesmos unresolved external aontecem com o Harbour 1.0.
Meu Fivewin é o 6.12 mas não estou usando as funções gráficas. Para imprimir o cupom fiscal uso a Daruma32.dll
Veja o programa:
#include "\Harbour\FWH\Include\FiveWin.ch"
#include "\Harbour\FWH\Include\Dll.ch"
Procedure Main()
public Int_Retorno
hBor := LoadLibrary( "bwcc32.dll" )
BWCCRegister( GetResources( ) )
SetHandleCount( 200 )
m->Int_Retorno := Daruma_FI_LeituraX()
FreeLibrary( hBor ) // Release borland
Return
DLL32 FUNCTION Daruma_FI_LeituraX( ) AS LONG PASCAL FROM "Daruma_FI_LeituraX" LIB 'Daruma32.dll'
DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"
*Faltam algumas linhas como estas 2 últimas. Vc pode me dizer quais?
-
Olá Amigos.
Para resolver o seguinte erro no Harbour + Fivewin:
Unresolved external '_HB_FUN_BWCCREGISTER' referenced from CUPOM.OBJ
Foi só acrescentar no final do PRG a seguinte linha:
DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"
E para estes outros unresolved external?
_HB_FUN_LOADLIBRARY
_HB_FUN_GETRESOURCES
_HB_FUN_STEHANDLECOUNT
_HB_FUN_FREELIBRARY
_HB_FUN_TSAY
_HB_FUN_GETPROCADRESS
_HB_FUN_CALLDLL
_HB_FUN_MSGALERT
-
Olá Amigos.
Para resolver o seguinte erro no Harbour + Fivewin:
Unresolved external '_HB_FUN_BWCCREGISTER' referenced from CUPOM.OBJ
Foi só acrescentar no final do PRG a seguinte linha:
DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"
E para estes outros unresolved external?
_HB_FUN_LOADLIBRARY
_HB_FUN_GETRESOURCES
_HB_FUN_STEHANDLECOUNT
_HB_FUN_FREELIBRARY
_HB_FUN_TSAY
_HB_FUN_GETPROCADRESS
_HB_FUN_CALLDLL
_HB_FUN_MSGALERT
-
Olá Samir.
Não funcionou. Deu ambiguous reference. Então mandei o prg para o seu email. Se você puder dar uma compilada poderá ver o erro acontecendo e ficará mais fácil me ajudar.
Eu agradeço muito por qualquer idéia que você tiver.
-
Qual erro de sintaxe há nestas linhas compiladas com:
Buildh Cupom3
cupom3(684) Syntax error E0030
// Controle da Porta
DLL32 FUNCTION Daruma_Registry_ControlePorta( ControlePorta AS STRING ) AS LONG PASCAL;
FROM "Daruma_Registry_ControlePorta" LIB 'Daruma32.dll'
O mesmo erro se repete em várias linhas seguintes.
-
Qual erro de sintaxe há nestas linhas compiladas com:
Buildh Cupom3
cupom3(684) Syntax error E0030
// Controle da Porta
DLL32 FUNCTION Daruma_Registry_ControlePorta( ControlePorta AS STRING ) AS LONG PASCAL;
FROM "Daruma_Registry_ControlePorta" LIB 'Daruma32.dll'
O mesmo erro se repete em várias linhas seguintes.
-
Fivewin permite rodar meu sistema parte em modo console e parte em Windows como HwGUI? Afinal ele é muito grande e vai demorar para ser integralmente convertido.
Abri um programa exemplo em http://www.4shared.com/file/68299493/d6680b4a/exemplo_vl_wvt_hwgui.html e vi que é possÃvel ter modo console e windows no mesmo exe. O Fivewin 6.12 faz isso?
-
Fivewin permite rodar meu sistema parte em modo console e parte em Windows como HwGUI? Afinal ele é muito grande e vai demorar para ser integralmente convertido.
Abri um programa exemplo em http://www.4shared.com/file/68299493/d6680b4a/exemplo_vl_wvt_hwgui.html e vi que é possÃvel ter modo console e windows no mesmo exe. O Fivewin 6.12 faz isso?
-
Postei este tópico porque estou tendo dificuldades em converter meu sistema de 16 para 32 bits. Para explicar melhor eis o link onde eu explanei o problema com um exemplo no forum do Antônio Liñares:
http://forums.fivetechsupport.com/viewtopic.php?f=21&t=17252
Devo dizer que a solução apresentada por ele funciona mas seria desnecessária se houvesse uma forma de gerar o exe apeasr do "undefined function"
-
Colegas,
A cláusula BLINKER EXECUTABLE NODELETE é uma mão na roda para quem desenvolve um sistema e o personaliza para vários clientes. Você escreve isso acima de BEGINAREA e abaixo vc lista os prg do sistema. Tudo isto no script de linkedição (arquivo lnk). No tempo do Clipper eu fazia um lnk para cada cliente e dentro dele só incluia os prg necessários para aquele cliente.
E no Harbour? Não existe algo parecido?
Se eu deixar de incluir um prg ele dá erro HB_FUN_.
Por isso eu pergunto: Existe Blinker para 32 bits?
-
Colegas,
A cláusula BLINKER EXECUTABLE NODELETE é uma mão na roda para quem desenvolve um sistema e o personaliza para vários clientes. Você escreve isso acima de BEGINAREA e abaixo vc lista os prg do sistema. Tudo isto no script de linkedição (arquivo lnk). No tempo do Clipper eu fazia um lnk para cada cliente e dentro dele só incluia os prg necessários para aquele cliente.
E no Harbour? Não existe algo parecido?
Se eu deixar de incluir um prg ele dá erro HB_FUN_.
Por isso eu pergunto: Existe Blinker para 32 bits?
-
Amigos,
Pelas respostas de vocês vejo que no Harbour sou obrigado a declarar todos os prg que fazem parte do projeto. Seja com Dynamic, seja com Include. Concluo que não é possÃvel gerar o exe se meu sistema tem alguma linha que chame um outro prg que ainda não esteja escrito. Eu esperava que ele fizesse como no clipper: informar a inexistência daquele modulo (que no meu sistema são muitos) após a linkedição e apresentar o erro "undefined function" quando o usuário tentasse executar a opção corresondente ao módulo inexistente.
Talvêz vocês perguntem por que pretendo fazer assim. É simples: eu faço um esqueleto só para todos os clientes e, para uns, habilito algumas opções do menu e para outros não.
Cada cliente meu tem pelo menos 20 módulos que não se aplicam a eles.
A solução que vejo para isso é linkar um prg contendo estas funções e deixá-las sem conteúdo assim:
Function subtrai
Return Nil
Isto permitiria gerar um executável mais enxuto o que é melhor que incluir funções que eles não precisam.
Alguém tem uma idéia melhor? Ou existe um Blinker para 32 bits?
-
Minha versão é
Harbour Alfa 1.0.1
-
Isto deu o seguinte erro:
Error E0030 Syntax error: "syntax error at 'SUBTRAI'"
-
Olá colegas
Existiria no Harbour uma cláusula semelhante ao
BLINKER EXECUTABLE NODELETE
que gera o exe apesar de um "unresolved external" como, por exemplo, na falta de um dos módulos compilados com /m no programa abaixo?
Calc.prg:
---------
Function Main()
Cliente := "JOAO"
If Cliente = "JOAO"
Soma(1, 1)
ElseIf Cliente = "MARIA"
Subtrai(1, 1) // Este prg nao consta em Joao.lnk
Endif // Como gero o exe apesar do
Return Nil // unresolved external?
Soma.prg:
---------
Proc Soma(A,
Return A+B
Joao.lnk:
-----------
Calc
Soma
Estou compilando assim:
compila @Joao
Compila.bat (parte dele)
-----------
\Harbour\Bin\harbour @%1.lnk -m -n -q0 -i%HB_INC_INSTALL% %2 %3 %HARBOURFLAGS%
Rem Arquitetura w32:
bcc32 -O2 -d %CFLAGS% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %1.c %HB_USER_LIBS% hbcpage.lib hbdebug.lib hbvm.lib hbrtl.lib gtwin.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddfpt.lib rddntx.lib rddcdx.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib
-
Olá colegas
Existiria no Harbour uma cláusula semelhante ao
BLINKER EXECUTABLE NODELETE
que gera o exe apesar de um "unresolved external" como, por exemplo, na falta de um dos módulos compilados com /m no programa abaixo?
Calc.prg:
---------
Function Main()
Cliente := "JOAO"
If Cliente = "JOAO"
Soma(1, 1)
ElseIf Cliente = "MARIA"
Subtrai(1, 1) // Este prg nao consta em Joao.lnk
Endif // Como gero o exe apesar do
Return Nil // unresolved external?
Soma.prg:
---------
Proc Soma(A,
Return A+B
Joao.lnk:
-----------
Calc
Soma
Estou compilando assim:
compila @Joao
Compila.bat (parte dele)
-----------
\Harbour\Bin\harbour @%1.lnk -m -n -q0 -i%HB_INC_INSTALL% %2 %3 %HARBOURFLAGS%
Rem Arquitetura w32:
bcc32 -O2 -d %CFLAGS% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %1.c %HB_USER_LIBS% hbcpage.lib hbdebug.lib hbvm.lib hbrtl.lib gtwin.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddfpt.lib rddntx.lib rddcdx.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib
-
Ih, galera
Entendemos mal o que o MARSAN escreveu! Eu achei que o Gilmer tinha dado orientações e dicas mostrando o caminho das pedras pra quem não sabe por onde começar a Nfe. Isto sim poderia ser compartilhado. Mas pelos 2 posts acima ficou claro que foi uma acessoria a nÃvel de programação e, como tal, deve ser paga e valorizada.
Retiro o que escrevi e junto-me às opiniões do Luiz e do Vitor. Seus sábios conselhos me estimulam a também procurar o Gilmer. Antes porém vou aprender o que são classes.
-
Eu também fiquei animado.
É um desafio urgente o que estamos a enfrentar. E Janeiro de 2010 é o limite! Tudo já deverá estar implantado e eu estou apenas começando.
Por favor, o que você mandar para o Donjuan mande também para Coiote. Sua lista de destinatários passa a ser: alessandroavel@ibest.com.br, ricardobarros@orolix.com.br
-
Evandro,
Agora o Mediator trabalha com MySql conforme o que diz no site www.otc.pl/index.asp?s=65
Now unlimited Mediator SQL RDD for MySQL for xHarbour, Harbour and Delphi applications is free for everyone!
O site ainda propõe um teste: Crie uma tabela, preencha-a com 1 milhão de registros e use Browse() para navegar nela pulando do inÃcio ao fim o que deverá levar menos de 1 segundo. Se sua RDD não for capaz disso então ela não é tão otimizada quanto a Mediator.
Já pensou? É o sonho de todo clipeiro! Será verdade?
E todos os comandos do velho DBF estão disponÃveis na versão free!
-
Bjbernal,
Sua opinião (de quem já experimentou algo além do Fivewin) é o que eu estava querendo saber. Vi num forum que a versão free da SqlLib só permite acesso para consultas (não grava nada no BD). Portanto só serve para testar. Há porém um RDD chamado Mediator que, segundo o próprio site, é o melhor driver para trabalhar com xBase e SQL (mais rápido, mais estável e oferece uma versão free limitada a 100 estações acessando um mesmo BD). O site abaixo (em inglês) cita as caracterÃsticas que um RDD deve ter para ser eficiente:
www.otc.pl/index.asp?s=65
Ao ver o seu depoimento me inclinei a favor do Fivewin.
Obrigado.
undefined reference to HB_FUN_LOADLIBRARY
in Programação
Posted
Muito obrigado, Eric .
O processo de compilação está bem melhor pois agora só falta reconhecer a hb_DynCall.
Qual LIB contém a função hb_DynCall?
Eu linkey apenas a Hbwin assim:
Hbmk2 x.prg -lhbwin