Falha ao tentar carregar uma DLL com runtime packages.

Delphi

29/01/2015

Bom dia.

Eu trabalho com um sistema, onde todos os módulos estão contidos em dll's.

Já a algum tempo, venho utilizando a opção "Link with runtime packages" marcada, para economizar espaço em disco, o que vem funcionando bem.

Estamos migrando a versão do Delphi XE6, e aparentemente estava funcionando bem também. O problema foi quando tentei testar em outras máquinas sem o Delphi Instalado.

Separei todos os pacotes que o sistema usa, coloquei no diretório específico, coloquei na variável de ambiente do Delphi e tentei executar, mas no momento de chamar a função "LoadLibrary", mesmo estando tudo nos devidos diretórios, a função retorna 0.

Fiz o teste de retirar os pacotes do diretório, e ao tentar executar ele dá o erro que está faltando "rtl200.bpl". Ao devolver os pacotes, ele não dá erro no momento de chamar a função, simplesmente não carrega a dll vindo a dar um "Access Violation" depois. Também testei colocando os pacotes no mesmo diretório do executável, e acontece a mesma coisa.

Alguém teria uma ideia do que eu poderia estar esquecendo de verificar e/ou fazer?

Grato.

José Junior.
José Jr.

José Jr.

Curtidas 0

Respostas

José Jr.

José Jr.

29/01/2015

Boa tarde.

O problema foi resolvido.

No Delphi 2006 não acontecia porque não existe nele o conceito de compilação para diferentes plataformas. Já na versão XE6, os pacotes internos da ide (rtl200.bpl, vcl200.bpl, etc) possuem versões diferentes para diferentes plataformas.

O erro ao tentar carregar as nossas dll's, que são compiladas para a plataforma win32, acontecia porque os pacotes copiados para o diretório de instalação do sistema, eram de um diretório diferente.

Abraços.


José Junior.
GOSTEI 0
POSTAR