Funcionalidades condicionadas a  presença de DLL no DELPHI

Espaço para dúvidas, problemas e sugestões gerais sobre o Projeto.
Mensagem
Autor
Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Localização: Vitoria da Conquista-BA

Funcionalidades condicionadas à presença de DLL no DELPHI

#1 Mensagem por nqnnospam »

Pessoal,

Como todos sabem, o Conversor usa uma biblioteca chamada InovaGIS. Esta biblioteca deve ser instalada no computador previamente, e é "linkada" ao código na forma duma "Type Library". Depois de instalada no sistema, ao iniciar um projeto que use a InovaGIS, é preciso ir em Project->Import Type Library para criar uma Unit com a interface para a biblioteca.

Atualmente, eu distribuo somente o executável do Conversor. O usuário tem que instalar a InovaGIS no sistema dele para funcionar. Se a InovaGIS não está instalada, o Conversor retorna um erro maluco qualquer e trava.

Primeira pergunta, não sei se enviando a DLL junto eliminaria a necessidade de instalar previamente a InovaGIS. não entendo muito bem como funciona o sistema de bibliotecas no Windows. Se eu colocar a biblioteca no mesmo path do executável já é suficiente para que o Windows a encontre? Ou eu preciso ajustar alguma coisa no registro? Existe alguma chave que especifique o caminho de procura das bibliotecas? Para quem conhece o Linux, seria algo equivalente ao LD_LIBRARY_PATH, ou o ldconfig.

Segunda pergunta (alternativa), existe como eu detectar a presença da InovaGIS e pelo menos fazer o Conversor retornar um erro mais compreensível (como "InovaGIS não instalada!"), em vez de simplesmante travar?

Terceira alternativa (a melhor). Na verdade, a InovaGIS só é necessária para gerar saída ESRI. O ideal seria o código conseguir testar a presença da InovaGIS, e abilitar/desabilitar as função ESRI de acordo com o resultado. Como eu faço isso? É possível?


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

Avatar do usuário
dqueiroz
Mensagens: 11
Registrado em: 29 Mar 2006, 10:00
Localização: Vila Velha, ES
Contato:

#2 Mensagem por dqueiroz »

Sérgio, este código fonte está disponível em alguma área?
Acredito que seria só distribuir a dll junto com o projeto. Se for o caso, tentar registrar ela usando regsvr32 c:\path\arquivo.dll

Para tentar dar o erro mais amigável, você já tentou usar um try .. except? não pega essa exceção não?

Se for o caso, disponibilize o código para poder dar uma olhada. não conheço o formato ESRI. Vou ver se arrumo alguma coisa a respeito.



Avatar do usuário
nqnnospam
Mensagens: 3905
Registrado em: 19 Set 2005, 18:22
Localização: Vitoria da Conquista-BA

#3 Mensagem por nqnnospam »

dqueiroz escreveu:Sérgio, este código fonte está disponível em alguma área?
Acredito que seria só distribuir a dll junto com o projeto. Se for o caso, tentar registrar ela usando regsvr32 c:\path\arquivo.dll

Para tentar dar o erro mais amigável, você já tentou usar um try .. except? não pega essa exceção não?

Se for o caso, disponibilize o código para poder dar uma olhada. não conheço o formato ESRI. Vou ver se arrumo alguma coisa a respeito.
dqueiroz,

Obrigado! Demorou um pouco para conseguir testar, mas distribuir a DLL e usar o regsvr32 funcionou perfeitamente. O negócio agora é fazer um instalador :D .

A parte do Try Except eu ainda não tentei, porque não sei exatamente onde o Delphi tenta carregar a DLL. Talvez definir um manipulador de erros logo no começo resolva, mas não sei exatamente como funciona no Delphi.


[]'s Sérgio Barroso
GPSMap 60CSx / Nuvi 765T / Nokia N78 + MobileXT
Desenvolvedor Estadual e Municipal Projeto Tracksource
Não leio mensagens privadas.
Quer colaborar com o Projeto Tracksource? Clique aqui.

Responder Exibir tópico anteriorExibir próximo tópico

Voltar para “TrackSource Geral”