Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib.ini ACBrNFe32.dll NOT FOUND


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1850 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá, e desde já obrigado por qualquer ajuda..

Descobri o projeto ACBR esses dias, e procurei sobre assuntos com o VB6.

Achei e baixei hoje os demos e a DLL (fiz o registro no SAC)

Pois bem, ja procurei aqui no forum, no google, e estou partindo para uma ajuda de algum amigo que passou por esse problema, que no meu ver não devia existir, mas deve ser parte do projeto todo e não so da solução VB6

Eu executo via VB (abro o projeto ou direto) como administrador, e da o erro direto de NOT FOUND ACBrLib.ini  ai achei um exemplo e criei na pasta e agora da esse erro NOT FOUND  ACBrNFe32.dll .

Existe alguma esquema diferente para instalar a DLL e criar o .ini ?

Eu acompanho o projeto via VB no modo DEBUG, e sempre da esse erro, onde tenho que instalar a DLL, pois ja coloquei nas pastas SYSTEM32 e nada... O VB não faz referencia a ela, enfim, se puder me ajudar a pelo menos ver como funciona isso, porque ate agora na minha santa ignorancia so abro projeto e nao roda nada..

Obrigado e no aguardo

Ferdinando

 

Postado

Obrigado pela resposta..

Estou usando o WINDOWS 10, fiz exatamente o que ta no video.. e agora aparece isso... RUN TIME error 49 - BAD DLL CALLING CONVENTION...

Alguma coisa a ver com o fato de estar usando o WINDOWS 10?

Estou executando direto do EXPLORER e nao abrindo pelo VB6

Parece que tá entrevado a coisa, não vai, kkk

Abs e obrigado pela ajuda

 

  • Consultores
Postado
21 minutos atrás, FerdinandoGalera disse:

Estou usando o WINDOWS 10, fiz exatamente o que ta no video.. e agora aparece isso... RUN TIME error 49 - BAD DLL CALLING CONVENTION...

Será que você copiou as dlls stdcall mesmo? Será que não trocou pelas cdecl?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Eu tomei esse cuidado...

Fiz isso repetidas vezes... crei diretorios com o projeto novo.. mas nada.. insiste em dar esse erro que parece de interpretação de DDL.  Não tem que registrar alguma coisa?

 

Postado (editado)

Uma pena que nao consegui fazer funcionar no VB6... O erro persiste.. Baixei como solicitado.. Mas o WINDOWS 10 aqui so da problema.. Imagina no cliente.. .nem pensar... era so pra assinar um simples XML, eu nao ia usar pra mais nada... Mas obrigado pela ajuda de todos ai..

Não tive sorte...  Desisto...

Abs fraternos

abcrerro.jpg

Editado por FerdinandoGalera
Inseri uma imagem
  • Fundadores
Postado

O erro é claro a informar que você copiou a versão Cdecl, quando a esperada era a StdCall...

Isso está muito claro no Vídeo que postei no primeiro tópico... Você assistiu ele com atenção ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Fundadores
Postado

Vamos lá...

1 - Apague toda e qualquer versão da ACBrLib, que você tenha no seu HD (principalmente das pastas do Windows).. Esse passo é importante, para que o Windows não encontre a DLL errada

2 - copie: ACBrLibNFe-0.4.3.30.zip\bin\StdCall\ACBrNFe32.dll para a pasta do seu .EXE

3 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta do seu .EXE

4 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta do seu .EXE

 

Se deseja rodar a DLL dentro da IDE do VB, você precisará copiar as mesmas DLLs para o diretório de sistema do Windows...

Para Windows 64, e DLLs de 32 bits, o diretório correto é SysWow64... portanto:

1 - copie: ACBrLibNFe-0.4.3.30.zip\bin\StdCall\ACBrNFe32.dll para a pasta C:\Windows\SysWow64

2 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

3 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

IMPORTANTE: Não copie as DLLs para outra pasta além de SysWow64

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Meu amigo Daniel (se posso chamar assim), se tem uma coisa que nos ultimos 35 anos de programação que vivo e respiro, é prestar atenção no que os outros falam.. Imagina quanta porcaria eu ja vi de sistemas que nao rodavam, porque o programador acha que porque roda na maquina dele tem que rodar em tudo... Eu sempre fiz sistemas para os outros e a base de nao saber onde seria instalado, assim, respondendo claramente sua resposta: SIM eu fiz exatamente o que você falou , e não foi nenhuma unica vez.. Claro se desejar eu vou e faço para você um VIDEO e posto aqui ou no YOUTUBE..

Realmente não funciona, ele da esse erro escabroso, mas não diz onde está localizado ai é so a base de debug acredito..

É uma pena, agora tenho que parar e desenvolver em .NET a minha propria solução, ninguem merece...

Caso queira, dou acesso via ANYDESK para confirmar o que digo... Mas acho que não precisa..

Mas obrigado de coração pelo seu tempo, mas o trem ficou complicado d+

1 minuto atrás, Daniel Simoes disse:

Vamos lá...

1 - Apague toda e qualquer versão da ACBrLib, que você tenha no seu HD (principalmente das pastas do Windows).. Esse passo é importante, para que o Windows não encontre a DLL errada

2 - copie: ACBrLibNFe-0.4.3.30.zip\bin\StdCall\ACBrNFe32.dll para a pasta do seu .EXE

3 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta do seu .EXE

4 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta do seu .EXE

Reparei agora.. a versao que voce tá usando é a 0.4.3.30 a que consegui baixar foi a ACBrLibNFe-0.4.2.24 

Pode ser ai o erro ...

Postado

OLha o que fiz, mesmo ja desistindo (kkk)

Baixei a versao nova ...

Exclui tudo que tinha de referencia ...

Copie por partes a StdCall (x86) e rodeio projeto, direto do Windows Explorer (conforme orientado)  o erro que deu foi ACBrNFe32.dll  NOT FOUND.. .

Ai copiei os arquivos do OPENSSL (x86) na pasta e rodei novamente, o erro que deu foi o RUN TIME error 49 - BAD DLL CALLING CONVENTION...

Removi essas dll do OPENSSL, para tentar eliminar o erro e copiei ai a LIBXML2 (x86), o erro que deu foi ACBrNFe32.dll  NOT FOUND.. .

Assim cheguei a conclusao que o erro está relacionado a OPENSSL.

Tem alguma coisa que posso fazer para isso?

Éspero que tenha entendido.. kkk

Postado

Você com certeza absoluta esta copiando a dll incorreta para a pasta do programa.
Eu acabei de baixar as dll do site e fazer os procedimentos e não obtive este erro.

Sobre o erro, ele não ocorreria pela dll do OpenSSL pois o vb6 não carrega ela, mas o lib do NFe carrega ela.

Vou te explicar o por que deste resultados.

Quando você tenta carregar a dll sem dependências o VB6 não consegue iniciar a dll pois a mesma esta sem as dependências. - ACBrNFe32.dll  NOT FOUND.. 

Mas como que carrega com a LibXml 2 e não com a OpenSSL ?
Simplesmente as dependências são carregadas em RunTime, no caso a OpenSSL já é carregada ao iniciar a dll, e a LibXml2 só é carregada ao assinar o mesmo.

Mas como não da erro quando tem  apenas a dll da LibXML2 ?

A resposta acima explica o por que.

Quando finalmente tem as dependências a dll é inicializada corretamente, nesta hora o VB6 percebe que a dll é Cdecl e Não StdCall ai da o erro de BadCalling Convention.

Resumindo, confere sem não tem a dll em outro lugar tipo na pasta SysWOW64 ou na Pasta do VB6, confere se esta copiando a dll StdCall.

 

 

Postado
20 horas atrás, Rafael Dias disse:

Você com certeza absoluta esta copiando a dll incorreta para a pasta do programa.
Eu acabei de baixar as dll do site e fazer os procedimentos e não obtive este erro.

Sobre o erro, ele não ocorreria pela dll do OpenSSL pois o vb6 não carrega ela, mas o lib do NFe carrega ela.

Vou te explicar o por que deste resultados.

Quando você tenta carregar a dll sem dependências o VB6 não consegue iniciar a dll pois a mesma esta sem as dependências. - ACBrNFe32.dll  NOT FOUND.. 

Mas como que carrega com a LibXml 2 e não com a OpenSSL ?
Simplesmente as dependências são carregadas em RunTime, no caso a OpenSSL já é carregada ao iniciar a dll, e a LibXml2 só é carregada ao assinar o mesmo.

Mas como não da erro quando tem  apenas a dll da LibXML2 ?

A resposta acima explica o por que.

Quando finalmente tem as dependências a dll é inicializada corretamente, nesta hora o VB6 percebe que a dll é Cdecl e Não StdCall ai da o erro de BadCalling Convention.

Resumindo, confere sem não tem a dll em outro lugar tipo na pasta SysWOW64 ou na Pasta do VB6, confere se esta copiando a dll StdCall.

 

Eu posso ter um monte de defeito, mas mentiroso e perder tempo dos outros é algo que eu não faço, por isso segue video gravado   e voces tirem suas proprias conclusoes... se tiver fazendo algo errado por favor, estou aberto a sugestões, mas dai pra frente ler uma coisa e fazer  outro, desculpe.. voces estão acostumados ai com suporte com usuario iniciante, eu to na estrada a 35 anos e ja vi muito disso.. entao antes que eu parta para falar pra voces que o sistema nao funciona por falta de testes, segue o video e espero que eu esteja errado, porque com certeza alguma merda to fazendo, mas não é a que voces insistem em dizer... estou copiando desde o principio a pasta STD... 

  • Fundadores
Postado

Acho que ninguém o chamou de mentiroso... se isso ficou subentendido, fica aqui o meu pedido de desculpas...

Vendo o seu vídeo, notei que você faz alguns passos diferentes, do explanado no vídeo do Rafael...

Notei que você está copiando as DLLs na mesma na pasta onde está o Projeto, e não na pasta onde o VB gera o .EXE...

O Windows procura as DLLs, primeiro na mesma pasta onde está o Binário... provavelmente o Windows está carregando as DLLs erradas...

Tente ainda, rodar o binário diretamente, sem ser por dentro da IDE...

 

Em 31/10/2019 at 10:28, Daniel Simoes disse:

Se deseja rodar a DLL dentro da IDE do VB, você precisará copiar as mesmas DLLs para o diretório de sistema do Windows...

Para Windows 64, e DLLs de 32 bits, o diretório correto é SysWow64... portanto:

1 - copie: ACBrLibNFe-0.4.3.30.zip\bin\StdCall\ACBrNFe32.dll para a pasta C:\Windows\SysWow64

2 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

3 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

IMPORTANTE: Não copie as DLLs para outra pasta além de SysWow64

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado
9 minutos atrás, Daniel Simoes disse:

Acho que ninguém o chamou de mentiroso... se isso ficou subentendido, fica aqui o meu pedido de desculpas...

Vendo o seu vídeo, notei que você faz alguns passos diferentes, do explanado no vídeo do Rafael...

Notei que você está copiando as DLLs na mesma na pasta onde está o Projeto, e não na pasta onde o VB gera o .EXE...

O Windows procura as DLLs, primeiro na mesma pasta onde está o Binário... provavelmente o Windows está carregando as DLLs erradas...

Tente ainda, rodar o binário diretamente, sem ser por dentro da IDE...

 

Eu não abro dentro da IDE, eu abro com o botao direito (ABRIR) ele linka com o VB e abre.. exatamente como faz o RAFAEL... veja no video... eu nao deixo o VB aberto e depois abro o projeto.. .

Fiz aqui o mesmo procedimento do video, igualzinho, até as pastas eu levei em consideracao, e da a mesma coisa..

Tem que instalar alguma coisa no computador (eu baixei o zip da DLL e os fontes pelo TOTSVN), tem que instalar algum programa que cria ambientes de instalacao ou sei lá...

Já conferi não tem nada na pasta WINDOWS... Meus amigos, eu jogo a toalha, senão tiver outra caracteristica do processo..

  • Fundadores
Postado
1 hora atrás, Daniel Simoes disse:

Se deseja rodar a DLL dentro da IDE do VB, você precisará copiar as mesmas DLLs para o diretório de sistema do Windows...

Para Windows 64, e DLLs de 32 bits, o diretório correto é SysWow64... portanto:

1 - copie: ACBrLibNFe-0.4.3.30.zip\bin\StdCall\ACBrNFe32.dll para a pasta C:\Windows\SysWow64

2 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

3 - copie: ACBrLibNFe-0.4.3.30.zip\dep\LibXml2\x86\*.dll para a pasta C:\Windows\SysWow64

IMPORTANTE: Não copie as DLLs para outra pasta além de SysWow64

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

@Ferdinando Galera você chegou a fazer como solicitei antes, confere sem não tem a dll em outro lugar tipo na pasta SysWOW64 ou na Pasta do VB6.
O path do windows é uma variável do sistema, pode ser varias pastas, pode testar outra coisa também, copiar as dll para dentro da pasta do vb6 e abrir o projeto por dentro da IDE e ve se da o mesmo erro.

Se tiver condições de fazer uma VM para testar, limpa apenas windows e vb6 sp6, assim podermos descarta outros erros seria ideal também.

 

Postado
Em 01/11/2019 at 14:34, Rafael Dias disse:

@Ferdinando Galera você chegou a fazer como solicitei antes, confere sem não tem a dll em outro lugar tipo na pasta SysWOW64 ou na Pasta do VB6.
O path do windows é uma variável do sistema, pode ser varias pastas, pode testar outra coisa também, copiar as dll para dentro da pasta do vb6 e abrir o projeto por dentro da IDE e ve se da o mesmo erro.

Se tiver condições de fazer uma VM para testar, limpa apenas windows e vb6 sp6, assim podermos descarta outros erros seria ideal também.

Amigo, eu ja fiz tudo e mais um pouco, mas infelizmente, joguei a toalha... eu me dediquei horas em cima, fazendo tudo e mais um pouco, e ainda ouvindo voces dizerem (com certezas) que eu estava fazendo errado, então fiz o que qualquer um com bom senso deve fazer, apaguei tudo, exclui da minha cabeça o sistema de voces, e partir para o meu proprio, nao queria, mas se eu como programador dedicado, a +30 anos, nao consigo fazer uma DLL funcionar, porque ninguem sabe o que aconteceu depois de sair da zona de conforto, imagina instalar isso em cliente, nem pensar.. isso so funciona para maquina virgem ou para neguinho que nao faz ideia do que voces estão falando, assim, agradeço e vou me dar por satisfeito.. foi bom enquanto tentamos.. abs fraternos

  • Este tópico foi criado há 1850 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...