Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib - Carregar dll em caminhos personalizados


Ver Solução Respondido por tryideas sistemas,

Recommended Posts

  • Membros Pro
Postado

Boa tarde, conforme avaliado a demo em c# de vocês vi que fizeram o carregamento da biblioteca dinâmico para as dlls por exemplo acbrnfse.dll sendo x64 ou x86, quanto a isso não tenho dúvidas, mas referente as dll de dependencias, tais como opensll, wincrypt, etc. essas pelo que identifiquei elas sempre buscam na raiz, é possivel fazer de forma dinamica essas dependencias também? estou usando as proprias dlls distribuidas nas versões

  • Fundadores
Postado

Na verdade é o Sistema Operacional que tem uma lógica de buscas por DLLs  no Path da máquina

Mas o primeiro lugar que ele procura é na mesma pasta do Binário que esta tentando carregar a DLL...

Portanto experimente copiar as DLLs de dependência, na mesma pasta de acbrnfse.dll

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

não.. você precisa copiar as DLLs exatamente na mesma pasta da acbrnfse.dll e não em subpastas

Exemplo: acbrnfse.dll, libcrypto-1_1.dll, libssl-1_1.dll     devem estar no mesmo diretório

 

  • Curtir 1
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.

  • Membros Pro
Postado (editado)

Foi o que fiz, tenho a pasta raiz onde tem o executavel do projeto, ai tem a pasta ACBr em seguida X64 e x32 "./ACBr/X64/" ./ACBr/x32/..."

 

dentro dela tem todas as dlls

 

image.thumb.png.ee753fce3b76c0636a098f297b559ddf.png

Editado por tryideas sistemas
  • Consultores
Postado
14 minutos atrás, tryideas sistemas disse:

Foi o que fiz, tenho a pasta raiz onde tem o executavel do projeto, ai tem a pasta ACBr em seguida X64 e x32 "./ACBr/X64/" ./ACBr/x32/..."

 

dentro dela tem todas as dlls

 

image.thumb.png.ee753fce3b76c0636a098f297b559ddf.png

Esta usando C# ? Se sim, renomeie a pasta ACBr para ACBrLib.. 
ACBrLib/x64 ou ACBrLib/x86

  • Membros Pro
Postado
1 hora atrás, antonio.carlos disse:

Esta usando C# ? Se sim, renomeie a pasta ACBr para ACBrLib.. 
ACBrLib/x64 ou ACBrLib/x86

fiz o teste mas o problema ainda continua

o erro que é retornado

Situação:  - Erro:99999 - Descrição:Erro ao inicializar a Biblioteca LibXML2

image.thumb.png.b3e96e9be869787fe0ea40aff73919ba.png

não sei se é relevante mas estou usando Cdecl

  • Consultores
Postado
45 minutos atrás, tryideas sistemas disse:

fiz o teste mas o problema ainda continua

o erro que é retornado

Situação:  - Erro:99999 - Descrição:Erro ao inicializar a Biblioteca LibXML2

image.thumb.png.b3e96e9be869787fe0ea40aff73919ba.png

não sei se é relevante mas estou usando Cdecl

Sua aplicação esta carregando uma ACBrLibNFSe, de onde não existe as dlls de dependências junto a ela.. por isso o motivo do erro de não conseguir inicializar..
Faça uma busca em sua maquina, apague todas as ACBrLibs que encontrar.. após isso, cole somente uma para pasta ACBrLib/x86 ou ACBrLib/x64..
 

  • Membros Pro
  • Solution
Postado

achei uma solução para o problema, alterando o SetDllDirectory
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool SetDllDirectory(string lpPathName);

  • Curtir 3
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.