Fórum Falha ao tentar carregar uma DLL com runtime packages. #508826
29/01/2015
0
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.
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.
Curtir tópico
+ 0
Responder
Posts
13/02/2015
José Jr.
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)