Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Membros Pro
Postado

Boa tarde 

Estou começando a utilizar a biblioteca AcbrNFSe32.dll integrado com xharbour 0.99.70

As funcções sem retorno estão funcionando, mas as que tem algum retorno, sempre tem como resultado: 

-10

Indica que houve erro ao consultar parâmetros.

Anexo o PRG para análise

Outra questão seria qual a forma correta de chamada da DLL nesse caso:

DC_CALL_STD 0x0020 ou 

DC_CALL_CDECL 0x0010 ?

 

Essa é tela de retorno(caractere)

 

 

TESTEDLL.PRG

  • Consultores
Postado

Tópico movido para a área do ACBr Pro, para que o SLA de respostas seja considerado

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Consultores
Postado
48 minutos atrás, vscapin disse:

Boa tarde 

Estou começando a utilizar a biblioteca AcbrNFSe32.dll integrado com xharbour 0.99.70

As funcções sem retorno estão funcionando, mas as que tem algum retorno, sempre tem como resultado: 

-10

Indica que houve erro ao consultar parâmetros.

Anexo o PRG para análise

Outra questão seria qual a forma correta de chamada da DLL nesse caso:

DC_CALL_STD 0x0020 ou 

DC_CALL_CDECL 0x0010 ?

 

Essa é tela de retorno(caractere)

 

 

TESTEDLL.PRG 2.98 kB · 1 download

Ola @vscapin temos um código que foi contribuição de colegas que utilizam Harbour.
https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/NFSe/

Veja se com este código você consegue seguir com seus testes.

Quanto a convenção de chamada, consultando o tio google, me parece que Harbour aceita as duas convenções:
REQUEST HB_LibCall := hb_LibCall(cdecl, "Funcao")
REQUEST HB_LibCall := hb_LibCall(stdcall, "Funcao")

Ainda sim, seria bom realizar os testes..

Quando ao exemplo disponibilizado, esta sendo utilizando DLL_OSAPI.
É uma biblioteca dinâmica que utilizam em linguagens baseadas em xBase, como xHarbour e Clipper, talvez possa ser bastante útil para seus testes.
Ela atua como um intermediário entre o código escrito em xHarbour e as APIs nativas do sistema operacional.

  • Curtir 1
  • Consultores
Postado

Não conheço harbour, mas seguem algumas dicas para você ver se consegue resolver.

1. Teste com o programa de exemplo que existe no repositório ou ao menos compare se está seguindo a mesma linha de raciocínio para a implementação

https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/NFSe/ACBrNFSe.prg

* Veja também outros programas de exemplo para verificar se ajuda na implementação

https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/

2. Aumente o tamanho do retorno, o problema pode estar ao receber uma resposta maior. Ex:

#define STR_LEN 1024
ou
#define STR_LEN 4096

3. Qual a forma "correta" de chamar depende da sua linguagem

51 minutos atrás, vscapin disse:

Outra questão seria qual a forma correta de chamada da DLL nesse caso:

DC_CALL_STD 0x0020 ou 

DC_CALL_CDECL 0x0010 ?

* É a convenção de chamada que irá utilizar e para cada uma você deve utilizar a respectiva dll distribuída pelo ACBr

3.1. DC_CALL_STD (stdcall)
* Para essa chamada você irá utilizar as bibliotecas da pasta ..\bin\MT\StdCall extraída do pacote da biblioteca baixado

3.2. DC_CALL_CDECL (cdecl)
* Para essa chamada você irá utilizar as bibliotecas da pasta ..\bin\MT\Cdecl extraída do pacote da biblioteca baixado

4. Caso o erro persista, configure para gerar o log na seção "Principal" do ini com o LogNivel=4 e anexe o log gerado para análise

https://acbr.sourceforge.io/ACBrLib/Geral.html

[Principal]
TipoResposta=0
CodificacaoResposta=0
LogNivel=4
LogPath=C:\DFE\NFSE\

 

  • Curtir 1
  • Consultores
Postado
45 minutos atrás, vscapin disse:

Bom dia 

@Renato Rubinho@Alexandre de Paula Cfe solicitado alterei as configurações de STR_LEN, LogNivel. 

Segue anexo log.

Existe 

 

ACBrLibNFSe Demo-20250129.log 16.87 kB · 0 downloads

Você precisa informar um código do município, para que ACBrLibNFSe possa configurar qual o provedor da cidade e versão.
image.png
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca22.html

Outro detalhe, você é assinante ACBrPRO e esta utilizando o ACBrLib na versão de Demonstração.. essa versão tem algumas limitações de uso, recomendo você trocar esta ACBrLib e utilizar a versão PRO:

 

  • Curtir 1
  • Membros Pro
Postado (editado)
22 minutos atrás, antonio.carlos disse:

Você precisa informar um código do município, para que ACBrLib NFSe possa configurar qual o provedor da cidade e versão.
image.png
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca22.html

Outro detalhe, você é assinante ACBrPRO e esta utilizando o ACBrLib na versão de Demonstração.. essa versão tem algumas limitações de uso, recomendo você trocar esta ACBrLib e utilizar a versão PRO:

 

@antonio.carlos Foi instalada a bibilioteca versão PRO e colocado o código do município e o problema do provedor foi resolvido, mas continuam os access violation.

E surgiu uma outra dúvida, é possível utilizar Certificado A3 nessa biblioteca ao invés de A1(pfx)?

 

 

ACBrLibNFSe-20250129.log

Editado por vscapin
  • Consultores
Postado
10 minutos atrás, vscapin disse:

mas continuam os access violation.

Provavelmente sua implementação esta informando algum parâmetro ou valor errado o que acabou ocasionando A.V.
Precisa seguir a documentação:
https://acbr.sourceforge.io/ACBrLib/MetodosNFSe.html

Sugestão é você estudar um programa exemplo funcional, vou deixar em anexo um exemplo C# para que você possa realizar os testes e estudar...
Debug.zip
 

O fonte deste programa exemplo também esta disponível no SVN:
https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/C%23/NFSe/

Sim, você pode usar Certificado A3.. eu particularmente prefiro o uso do A1..
Só configurar ele nas propriedades DFe do ACBrLib.ini
https://acbr.sourceforge.io/ACBrLib/DFe.html

  • Curtir 1
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...