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....
É isso ai... O q sera q ta havendo... Pode ser algo no meu SO ?
.
:-O