Jump to content

dev botao

ACBr.PDV dando Exception com erro inesperado com LIBs MT.


OFF-DEV
  • Este tópico foi criado há 1198 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

 

Prezados,

 

Baixei o ACBr.PDV criado pelo Rafael pelo SVN, ao tentar executá-lo pelo VS2019 ocorre um ApplicationException na função CheckResult(int ret)  de um retorno não tratado :  mensagem 5.

O Stack é esse:

>    ACBrLib.Core.dll!ACBrLib.Core.ACBrLibHandle.CheckResult(int ret) Line 401    C#
     ACBrLib.NFe.dll!ACBrLib.NFe.ACBrNFe.ConfigGravarValor(ACBrLib.Core.ACBrSessao eSessao, string eChave, object value) Line 256    C#
     ACBr.PDV.exe!ACBr.PDV.CaixaPDV.CaixaPDV() Line 51    C#
     ACBr.PDV.exe!ACBr.PDV.FrmMain.FrmMain_Shown(object sender, System.EventArgs e) Line 50    C#
     [External Code]    
     ACBr.PDV.exe!ACBr.PDV.Program.Main() Line 19    C#


 

OBS1: Como baixei e rodei, aparentemente está rodando as libs MT como padrão, dando este erro.  

OBS2: Retirando as bibliotecas MT e colocando as Single Thread, funciona sem problemas.

OBS3: Baixei as ultimas versões das DLLs MT do SAT e atualizei, porém o erro continua.

 

 

Alguém sabe como resolver isso?

 

Desde já agradeço

Leandro S.

 

 

Link to comment
Share on other sites

  • Membros Pro

Prezado Antonio, obrigado por postar,

 

Sim, assisti estes vídeos algumas vezes já, e foi através dele que cheguei no svn do ACBr.PDV do Rafael, meu problema é que ao tentar executar o demo, ele não funciona pois vem já preparado só para MT, disparando o erro citado no checkresult.

 

No vídeo não explica como resolver o problema do demo dele usando MT, ou se quer como minimamente preparar-se para rodar o ACBr.PDV com MT, apesar de está referenciado com estas libs...  OU não era para rodar corretamente com MT mesmo?

 

Vlw

Link to comment
Share on other sites

  • Consultores

@OFF-DEV
Acabei de fazer um teste com o Demo ACBr.PDV.
image.png

Não houve nenhum erro conforme você relatou acima, veja que a estrutura das pasta dentro do .exe do Demo.
Dentro da pasta ACBrLib criei outra pasta x64 para utilizar as libs versão 64 com suporte a MultiThread.
image.png
Essas 4 dll são necessárias para utilizar o Demo ACBr.PDV.
Veja também que o Demo depende do ACBrLib.Core:
image.png
O mesmo esta disponivel no SVN a pasta /Shared.

Link to comment
Share on other sites

  • Membros Pro

 

Coloquei exatamente como você colocou em ACBrLib/x64 as mesmas bibliotecas.  E deu o mesmo erro que citei lá em cima.

Ao que parece não é problema em carregar as DLLs, elas estão sendo encontradas corretamente como antes.

 o problema é o retorno deste método abaixo que é -3.  

        public void ConfigGravarValor(ACBrSessao eSessao, string eChave, object value)
        {
            if (value == null) return;

            var method = GetMethod<Delegates.NFE_ConfigGravarValor>();
            var propValue = ConvertValue(value);

            var ret = ExecuteMethod(() => method(libHandle, ToUTF8(eSessao.ToString()), ToUTF8(eChave), ToUTF8(propValue)));
            CheckResult(ret);
        }

Se ele não tivesse encontrando o método na DLL, o exception seria de outro tipo, mas não é isso?....

 

 

 

CheckResult não trata ret=-3, apenas manda um exception pra cima ....

        protected void CheckResult(int ret)
        {
            if (ret >= 0) return;

            var message = GetUltimoRetorno();

            switch (ret)
            {
                case -6:
                    throw new DirectoryNotFoundException(message);

                case -5:
                    throw new FileNotFoundException(message);

                default:
                    throw new ApplicationException(message);
            }
        }

 

Link to comment
Share on other sites

  • Membros Pro

 

 

Em debug aqui, na inicialização da DLL  já ocorre um InternalError como pode ser visualizado.  O diretório x64 está lá com as DLLs.    

 

 

image.thumb.png.cf7d85ca38aace1c4119b99cb6f6b2b9.png

O que eu fiz:

1-voltei a copia origianl

2-joguei as DLLs em ACBrLib/x64

3-Executei

 

 

 

Tem alguma coisa aqui que está impedindo o carregamento......

Link to comment
Share on other sites

  • Membros Pro
8 minutos atrás, Rafael Dias disse:

Infelizmente você deve estar copiando a dll errada ou modificou o projeto de alguma maneira, pois não conseguimos simular o erro aqui, recomendo apagar tudo e começar do começo novamente e conferir se esta tudo correto.

Obrigado Rafael,

Realmente algum problema de DLLs Hell aqui, eu baixei tudo novamente da página do acbr e descompactei uma a uma e atualizei o diretório x64 novamente, agora está funcionando, entrou na tela inicial e não apresentou -3.

Muito obrigado Rafael e Antônio! 

 

Abraços..

Link to comment
Share on other sites

  • Este tópico foi criado há 1198 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...