Ir para conteúdo
  • Cadastre-se

dev botao

LibXML2 em aplicações ISAPI


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

Recommended Posts

Postado

Bom dia, @Daniel Simoes

Após atualizar os fontes para a rev. 19047 do SVN, comecei a ter problemas com o carregamento da libxml2.dll em uma aplicação ISAPI.

Falha ao assinar o Envio de Evento: Erro ao inicializar a Biblioteca LibXML2

Aparentemente o problema ocorre porque o sistema tenta localizar a DLL no diretório do executável, que neste caso é C:\Windows\System32\inetsrv\w3wp.exe ou C:\Windows\SysWOW64\inetsrv\w3wp.exe, dependendo da versão do Windows.

Tentei configurar a variável global LibXml2Path com o diretório da DLL, mas isso só funcionou em meu ambiente de testes com a DLL em anexo.
Usando a DLL mais recente da pasta ACBr\DLLs\LibXml2 o erro voltava acontecer.

LoadLibrary(PChar(LibXml2Path + Value));

Nesses casos o retorno da função LoadLib é sempre zero.

Só consegui fazer funcionar em meu ambiente de produção revertendo os fontes para a revisão anterior.

Alguma dica de como solucionar este problema?

Obrigado.

libxml2.dll

  • Fundadores
Postado

Sua DLL parece ser diferente da que o ACBr distribui:

http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/LibXml2/x86/

Lembre-se de copiar TODAS as DLLs na pasta indicada acima... e o melhor local, é na mesma pasta do seu .EXE

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.

  • Solution
Postado
2 horas atrás, Daniel Simoes disse:

A LibXML2 e o OpenSSL, agora são carregados de forma Dinâmica... o ISAPI não suporta isso ?

Resolvi o problema chamando a função SetDllDirectory, passando o local da DLL da minha aplicação para ser adicionado na lista de diretórios verificados pela função LoadLibrary.
De acordo com a documentação da Microsoft, informar o caminho completo da DLL na chamada da LoadLibrary já seria o suficiente, porém isso não funcionou pra mim.

https://docs.microsoft.com/pt-br/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya
https://docs.microsoft.com/pt-br/windows/win32/api/winbase/nf-winbase-setdlldirectorya

  • Curtir 1
  • Obrigado 1
  • Este tópico foi criado há 1677 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.