ACBr - xHarbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Toledo escreveu:Fladimir, o Rochinha ta trabalhando demais e acabou esquecendo do endereço do servidor dele... o correto é:
Obrigado Toledo e Rochinha, imaginei q fosse algo do gênero, de vez em qdo confundimos, faz parte...
Itamar M. Lins Jr. escreveu:Use as equivalentes do Harbour.
Obrigado Itamar vou testar e depois comento.

Sds.

Sucesso!!!
:)Pos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Itamar consegui substituir pelas correlatas do Harbour e compilar....obrigado...

Rochinha usei as 2 dlls baixadas q vc indicou e o erro permanece, mas em Harbour além da tela das postagens anteriores ele mostra tb no console...

Uma única ressalva no Harbour o retorno de qdo carrega a Dll é "Pointer", não sei o q significa, em virtude disso tive q tirar a cláusula q analisava se o retorno foi Maior q ZERO.

Pra Relembrar: "O programa abre ativa a Daruma, Abre o Cupom e NÃO VENDE O ITEM - nessa parte q da erro, o cancelamento do cupom esta Ok tb."

Segue abaixo codigo refeito e erro.

Código: Selecionar todos

#include "dll.ch"

Function main()

* xHarbour
* public hDLL := LoadLibrary( "ACBrECFDLL.dll" )

* Harbour
 public hDLL := DllLoad( "ACBrECFDLL.dll" )  // Testei tb com ACBrEcf.dll baixadas do site do Rochinha

* Tirei devido o retorno de hDll = Pointer // analisar

// if hDLL > 0
	xDefModelo := DefineModelo( "Daruma", "COM1", 3 )
	If xDefModelo = 1
	    nRetorno := AbreCupom()
	    If nRetorno > 0
	       ? "Cupom nao pode ser aberto."
 	       CancelaCupom()
	    Endif

	    Codigo      		  		:= '123456'
	    Descricao   		  		:= 'PRODUTO TESTE'
	    AliquotaICMS		  		:= 'II'
	    Qtd          	 			:= 1
       ValorUnitario	 			:= 2.50
	    DescontoPorc 		       := 0
	    Unidade                   := "UN"
       TipoDescontoAcrescimo     := "%"
       cTipoQtde                 := "I"
       nCasasDecimais            := "2"

            Retorno := VendeItem(  Codigo,  Descricao,  AliquotaICMS,  Qtd, ValorUnitario, DescontoPorc, Unidade, TipoDescontoAcrescimo)
            ? Retorno

	    If Retorno > 0
	       Alert( "Cancelando cupom. Erro ("+str(nRetorno)+")" )
	       CancelaCupom()
	    Endif 
   Else
      Alert('Não foi possível ativar o ECF')
   Endif

   DllUnload( hDLL )
   * xHarbour freelibray()
   
// Else
//   Alert( "ACBrECFDLL.dll nao foi carregada." )
// Endif

Return nil

FUNCTION DefineModelo(cModeloStr, cPorta, nTimeout)
RETURN   DllCall(hDll, DLL_OSAPI,"DefineModelo",cModeloStr,cPorta,nTimeout)

FUNCTION IdentificaConsumidor( cCPF_CNPJ, cNome, cEndereco ) 
RETURN DllCall(hDll,DLL_OSAPI,"IdentificaConsumidor", cCPF_CNPJ, cNome, cEndereco ) 

FUNCTION AbreCupom( cCPF_CNPJ, cNome, cEndereco) 
RETURN DllCall(hDll,DLL_OSAPI,"AbreCupom", cCPF_CNPJ, cNome, cEndereco) 

FUNCTION VendeItem( Codigo, Descricao, AliquotaICMS, Qtd, ValorUnitario, DescontoPorc, Unidade, TipoDescontoAcrescimo)
RETURN DllCall(hDll, DLL_OSAPI,"VendeItem", Codigo, Descricao, AliquotaICMS, Qtd, ValorUnitario, DescontoPorc, Unidade, TipoDescontoAcrescimo)

FUNCTION FechaCupom( cObservacao )
RETURN DllCall(hDll,DLL_OSAPI,"FechaCupom", cObservacao )

FUNCTION SubtotalizaCupom( DescontoAcrescimo, MensagemRodape)
RETURN DllCall(hDll,DLL_OSAPI,"SubtotalizaCupom", DescontoAcrescimo, MensagemRodape)

FUNCTION EfetuaPagamento( cCodFormaPagto, nValor, cObservacao, lImprimeVinculado)
RETURN DllCall(hDll,DLL_OSAPI,"EfetuaPagamento", cCodFormaPagto, nValor, cObservacao, lImprimeVinculado)

FUNCTION LeituraX() 
RETURN DllCall(hDll,DLL_OSAPI,"LeituraX") 

FUNCTION ReducaoZ( DataHora )
RETURN DllCall(hDll,DLL_OSAPI,"ReducaoZ", DataHora )

FUNCTION CancelaCupom()
RETURN DllCall(hDll,DLL_OSAPI,"CancelaCupom")

FUNCTION CancelaItemVendido( NumItem )
Return DllCall(hDll,DLL_OSAPI,"CancelaItemVendido", NumItem )

Erros / Informações ao executar no console....

Código: Selecionar todos

C:\TESTES~1>dll

Unrecoverable error 6005: Exception error:

    Exception Code:C0000005
    Exception Address:0040ABC4
    EAX:00000004  EBX:FFFFFFFC  ECX:773593FE  EDX:00000008
    ESI:004C3DC8  EDI:00926824  EBP:00920000
    CS:EIP:001B:0040ABC4  SS:ESP:0023:0012FDB0
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010286
    CS:EIP: 8B 4B 04 83 E1 03 83 F9 01 0F 84 07 06 00 00 8B
    SS:ESP: 00926824 004C3DC8 00AE4F68 00100000 009BDC04 00000001 004C3DC8 0042C
644 004C3DC8 00000008 004326C0 00000008 0043277B 00000004 00AE4F68 00242430

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...


Modules:
0x00400000 0x000C7000 C:\TESTES~1\dll.exe
0x7C900000 0x000B6000 C:\WINDOWS\system32\ntdll.dll
0x7C800000 0x00100000 C:\WINDOWS\system32\kernel32.dll
0x7E360000 0x00091000 C:\WINDOWS\system32\USER32.dll
0x77E50000 0x00049000 C:\WINDOWS\system32\GDI32.dll
0x76360000 0x0001D000 C:\WINDOWS\system32\IMM32.DLL
0x77F50000 0x000AB000 C:\WINDOWS\system32\ADVAPI32.dll
0x77DB0000 0x00092000 C:\WINDOWS\system32\RPCRT4.dll
0x77F20000 0x00011000 C:\WINDOWS\system32\Secur32.dll
0x009E0000 0x00126000 C:\TESTES~1\ACBrECFDLL.dll
0x77100000 0x0008B000 C:\WINDOWS\system32\oleaut32.dll
0x77BF0000 0x00058000 C:\WINDOWS\system32\msvcrt.dll
0x774C0000 0x0013D000 C:\WINDOWS\system32\ole32.dll
0x77BE0000 0x00008000 C:\WINDOWS\system32\version.dll
0x5D510000 0x0009A000 C:\WINDOWS\system32\comctl32.dll
0x7C9C0000 0x0081E000 C:\WINDOWS\system32\shell32.dll
0x77EA0000 0x00076000 C:\WINDOWS\system32\SHLWAPI.dll
0x773B0000 0x00103000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_65
95b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
0x10000000 0x0001A000 C:\WINDOWS\system32\inpout32.dll
0x746E0000 0x0004C000 C:\WINDOWS\system32\MSCTF.dll
0x00CE0000 0x000F5000 C:\ARQUIVOS DE PROGRAMAS\GBPLUGIN\gbiehscd.dll
0x75290000 0x0002E000 C:\WINDOWS\system32\msctfime.ime
0x77900000 0x000F5000 C:\WINDOWS\system32\SETUPAPI.dll
0x76FB0000 0x0007F000 C:\WINDOWS\system32\CLBCATQ.DLL
0x77030000 0x000CD000 C:\WINDOWS\system32\COMRes.dll
0x76960000 0x00008000 C:\WINDOWS\system32\LINKINFO.dll
0x76970000 0x00026000 C:\WINDOWS\system32\ntshrui.dll
0x76B00000 0x00011000 C:\WINDOWS\system32\ATL.DLL
0x5BCB0000 0x00055000 C:\WINDOWS\system32\NETAPI32.dll
0x769A0000 0x000B5000 C:\WINDOWS\system32\USERENV.dll

Called from DLLCALL(0)
Called from VENDEITEM(63) in dll.prg
Called from MAIN(33) in dll.prg

C:\TESTES~1>
Tela de Erro q tb gera....

Imagem

É isso ai... O q sera q ta havendo... Pode ser algo no meu SO ?
.
:-O
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: ACBr - xHarbour

Mensagem por Itamar M. Lins Jr. »

Poste o que o manual da Daruma diz a respeito do comando VendeItem.
Como devemos passar os parametros, Numeric, Charater etc...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: ACBr - xHarbour

Mensagem por rochinha »

Amiguinho,

Voce testou seu código com ECF de outra marca para ver se o problema não seria da DLL?
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.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Rochinha e demais companheiros, obrigado pela atenção, eu não testei em outras ecfs, mas estive aprendendo muito esses últimos dias sobre uso de dll em meus sistemas e hj consegui sanar o problema relacionado a outra função mas pertinente AO Uso de Dlls, assim q puder retomo os testes agregando esses novos conhecimentos e acredito q vai dar certo....

O q percebi foi o seguinte... q se mesmo ao passar parâmetros corretos usar por exemplo Caixa Alta ou Baixa da problema, pelo menos em uma Dll em q apanhei ela era Case Sensitive e nisso se resumiu praticamente todos os problemas...

Pergunto todas Dlls são Case Sensitive? Se sim pode estar ai a fonte de alguns probleminhas q tive neste tópico em específico.

Grande Abraço...

Sds.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: ACBr - xHarbour

Mensagem por rochinha »

Amiguinho,

De onde voce esteve baixando tais .DLLs e quais as datas de criação.

Também andei baixando uma par delas e inclusive algumas era preparadas para uso em embiente .NET e talvez por isto nossos aplicativos não fossem compativeis.
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.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Rochinha a ultima q usei e q esta disponivel na minha pasta de testes no q se refere a este topico é

ACBRECFDLL.DLL (02/08/2010 1,13mb)

Antes estava usando a ACBRECF.Dll (04/08/2010 856kb) q baixei do site do Rochinha, agora parei na de cima, não lembro da onde baixei.

Sds
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Re: ACBr - xHarbour

Mensagem por TerraSoftware »

Caro colega Fladimir.
Até onde vai meu pouco conhecimento sobre Dll's, é um padrao elas diferenciarem letras maiusculas de minusculas sim.

Exemplo correto:

Código: Selecionar todos

if dllcall("USER32.DLL",32,"FindWindow", ,"Calculadora") > 0
   mensagem("Programa Calculadora aberto.")
endif
Exemplo incorreto:

Código: Selecionar todos

if dllcall("USER32.DLL",32,"findwindow", ,"Calculadora") > 0
   mensagem("Programa Calculadora aberto.")
endif
Os parametros passados para a Dll deve obdecer a escrita exatamente como foi declarado pelo fabricante.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Obrigado colega, esta informação tive q aprender a duras custas, mas obrigado por confirmar minha análise a respeito, creio q pra quem não trabalha e ler este post evitara muitos problemas.

Sds..

Sucesso!!!!
:)Pos
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: ACBr - xHarbour

Mensagem por rochinha »

Amiguinho,

Geralmente, podemos saber quais as funções que compoem uma .DLL através da transformação para uma .LIB.

Não se trata de uma transformação e sim da geração de uma biblioteca de funções a partir do conteúdo de uma .DLL.

Para isto use o Borland IMPLIB.EXE, assim IMPLIB ACBrECFDLL.LIB ACBrECFDLL.DLL

Não esta errado não é esta a sequencia.

A partir da .LIB gerada voce poderá saber quais funções existem na mesma e para isto será necessário um segundo utilitário:

Explorer Lib v2.0

Com este utilitário voce praticamente navegará dentro da biblioteca e verá quais suas funções e consequentemente como estão escritas.
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.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: ACBr - xHarbour

Mensagem por fladimir »

Rochinha, como dizem alguns por ai... MATOU A PAU!!!

Vlw...

Sds.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder