Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Consultores
Postado

Olá pessoal!

Se você caiu neste tópico, supomos que você já conheça a ACBrLib e esteja tentando utilizar a mesma.

Se este não é o caso, você pode começar por aqui:

Muito bem, agora que todos sabem o que é a ACBrLib, vamos ao propósito do tópico que é ajudar aqueles que podem estar enfrentando problemas de inicialização ao utilizar o ACBrLib.

Para efeito de demonstração, vamos considerar o exemplo disponível em C# para NF-e, no entanto, os conceitos podem ser aplicados independente da linguagem de programação.

Possíveis erros:

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Erro: Não foi possível carregar a biblioteca na pasta da aplicação ou caminho padrão.

Captura de tela 2025-01-16 114603.jpg

Possível causa do problema:

Talvez um dos erros mais comuns de quem está tentando utilizar a ACBrLib pela primeira vez.

Este erro ocorre porque a aplicação não conseguiu encontrar a dll ACBrLibNFe no local que esperava encontrar.

Como resolver:

Quando se trabalha com a ACBrLib, é necessário distribuir a mesma junto de sua aplicação para correta comunicação e uso.

As classes do ACBr para os exemplos do C#, do Java, do VB6 por padrão buscam ela em um caminho seguindo a estrutura ..\ACBrLib\x86 ou ..\ACBrLib\x64 dependendo da arquitetura da aplicação.

Então em nosso exemplo C# da NF-e eu devo adicionar as pastas e a dll na estrutura de forma que fique:

Captura de tela 2025-01-16 160827.jpg

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Erro: System.Exception: ""

Captura de tela 2025-01-16 161329.jpg

`Possível causa do problema:

As bibliotecas ACBrLib são distribuídas em versões Single Thread e Multi Thread. Também são disponibilizados exemplos Single Thread e Multi Thread para consumir essas respectivas bibliotecas.

Este erro pode acontecer quando você utiliza a versão Multi Thread da ACBrLib com o exemplo Single Thread.

Como resolver:

Os exemplos Single Thread e Multi Thread são identificados no nome.

Single Thread

Captura de tela 2025-01-16 162255.jpg

Multi Thread

Captura de tela 2025-01-16 162343.jpg

Quando você faz o download da biblioteca ACBrLib, a mesma vem dentro da pasta dep conforme a estrutura:

Captura de tela 2025-01-16 161838.jpg

Se estiver utilizando o exemplo Single Thread certifique-se de ter distribuído a Lib Single Thread e caso esteja utilizando o exemplo Multi Thread, tenha certeza de estar usando a Lib Multi Thread.

Possível causa do problema:

Quando você executa a ACBrLib, ela automaticamente cria para você um arquivo ACBrLib.ini que centraliza todas as configurações da biblioteca.

Este erro também pode ocorrer caso o arquivo ACBrLib.ini está com alguma configuração inválida.

Como resolver:

Será preciso realizar um pequeno processo para buscar entender qual é a seção e qual é a configuração da mesma que está com o valor inválido.

  1. Renomeie seu arquivo ACBrLib.ini que centraliza as configurações da biblioteca para que ele fique de backup. Pode chamar de ACBrLibBKP.ini por exemplo.
  2. Execute novamente a aplicação para que um novo arquivo ACBrLib.ini em branco seja criado.
  3. Substitua uma seção do arquivo em branco pela seção do arquivo backup, execute a aplicação, caso não dê erro, pare a execução, substitua uma nova seção e execute novamente.
  4. Execute o passo 3 gradativamente até que volte a ter o problema de inicialização.

Assim, você pode descobrir qual é a seção do arquivo ACBrLib.ini que está com a informação inválida repita novamente o passo a passo agora alterando somente as informações desta seção até encontrar qual é a informação que tem o valor inválido.

Como identificar por qual das duas possibilidades eu estou passando?

O arquivo de Log gerado pela ACBrLib pode ajudar com esta questão.

Este é o log no nível paranoico gerado pela Lib com a dll MT no exemplo ST:

Quote

16/01/25 17:23:21:660 - TLibNFeConfig.AplicarConfiguracoes: C:\ACBr\trunk2\Projetos\ACBrLib\Demos\C#\NFe\Demo\ACBrLib.NFe.Demo\bin\Debug\ACBrLib.ini
16/01/25 17:23:21:663 - Travar
16/01/25 17:23:21:666 - Travar
16/01/25 17:23:21:669 - TLibNFeConfig.Gravar: C:\ACBr\trunk2\Projetos\ACBrLib\Demos\C#\NFe\Demo\ACBrLib.NFe.Demo\bin\Debug\ACBrLib.ini
16/01/25 17:23:21:685 - TLibNFeConfig.Gravar - Feito
16/01/25 17:23:21:686 - Destravar
16/01/25 17:23:21:689 - TLibNFeConfig.AplicarConfiguracoes - Feito
16/01/25 17:23:21:691 - Destravar
16/01/25 17:23:21:694 - TLibNFeConfig.Ler - Feito
16/01/25 17:23:21:696 - Destravar
16/01/25 17:23:21:698 - TACBrLibNFe.Inicializar - Feito
16/01/25 17:23:21:702 - LIB_Inicializar( C:\ACBr\trunk2\Projetos\ACBrLib\Demos\C#\NFe\Demo\ACBrLib.NFe.Demo\bin\Debug\ACBrLib.ini, **** )
16/01/25 17:23:21:704 -    ACBrLibNFE - 1.4.7.328

Este é o log no nível paranoico gerado pela Lib com uma informação inválida no arquivo ACBrLib.ini:

Quote

16/01/25 17:24:54:261 - TLibNFeConfig.AplicarConfiguracoes: C:\ACBr\trunk2\Projetos\ACBrLib\Demos\C#\NFe\Demo\ACBrLib.NFe.Demo\bin\Debug\ACBrLib.ini
16/01/25 17:24:54:265 - Travar
16/01/25 17:24:54:268 - Destravar
16/01/25 17:24:54:271 - TLibNFeConfig.Ler - Feito
16/01/25 17:24:54:273 - Destravar
16/01/25 17:24:54:276 - TACBrLib.Destroy
16/01/25 17:24:54:279 - Finalizar

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

Erro: Uma chamada para a função PInvoke desbalanceou a pilha.

Captura de tela 2025-01-16 173423.jpg

Possível causa do problema:

As bibliotecas ACBrLib além de versões Single Thread e Multi Thread também são compiladas considerando a convenção de chamada da linguagem que vai utiliza-lá.

Está convenções de chamada são StdCall e Cdecl.

Este erro ocorre quando você está utilizando uma ACBrLib com a convenção de chamada diferente das utilizadas pelas classes.

Como resolver:

Quando você faz o download da ACBrLib, você vai encontrar as convenções de chamada diferentes:

Captura de tela 2025-01-16 174408.jpg

Por padrão, os exemplos do C#, Java e VB6 fazem uso da convenção Cdecl:

Captura de tela 2025-01-16 174829.jpg

Certifique-se de que esteja utilizando a dll da convenção de chamada correta.

Neste exemplo eu devo utilizar a Cdecl ou alterar na classe para que use StdCall como convenção de chamada para que possa usar a dll correspondente.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

×
×
  • 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...