Usuários SAC OFF-DEV 44 Posted January 7 Usuários SAC Report Share Posted January 7 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 post Share on other sites
antonio.carlos 65 Posted January 7 Report Share Posted January 7 Veja essa palestra que o @Rafael Dias deu no Dia do ACBr Online 2020. Para utilizar Libs MT sugiro você dar uma olhada nos demos ACBr em C#. Veja nas declarações da funções da lib no demo MT que tem um parâmetro a mais. http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/C%23/ Link to post Share on other sites
Usuários SAC OFF-DEV 44 Posted January 7 Author Usuários SAC Report Share Posted January 7 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 post Share on other sites
antonio.carlos 65 Posted January 7 Report Share Posted January 7 @OFF-DEV Acabei de fazer um teste com o Demo ACBr.PDV. 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. Essas 4 dll são necessárias para utilizar o Demo ACBr.PDV. Veja também que o Demo depende do ACBrLib.Core: O mesmo esta disponivel no SVN a pasta /Shared. Link to post Share on other sites
Usuários SAC OFF-DEV 44 Posted January 7 Author Usuários SAC Report Share Posted January 7 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 post Share on other sites
Usuários SAC OFF-DEV 44 Posted January 7 Author Usuários SAC Report Share Posted January 7 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. 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 post Share on other sites
Rafael Dias 1,215 Posted January 7 Report Share Posted January 7 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. Rafael Dias Ajude o Projeto ACBr crescer - Assine o SAC Desenvolvedor ACBrLib. Link to post Share on other sites
Usuários SAC OFF-DEV 44 Posted January 7 Author Usuários SAC Report Share Posted January 7 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 post Share on other sites
antonio.carlos 65 Posted January 7 Report Share Posted January 7 Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Link to post Share on other sites
Recommended Posts