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?
Funcionalidades condicionadas a presença de DLL no DELPHI
Funcionalidades condicionadas àpresença de DLL 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.
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.
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.
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,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.
Obrigado! Demorou um pouco para conseguir testar, mas distribuir a DLL e usar o regsvr32 funcionou perfeitamente. O negócio agora é fazer um instalador

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.
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.