Jump to content

Recommended Posts

Posted

Boas!

Estou a fazer um programa simples para manipular imagens em quem utilizo uma biblioteca que encontrei na Internet (FreeImage) e essa biblioteca para funcionar precisa de uma dll. Quando compilo e corro o executável se a dll não estiver na mesma pasta que o executável o programa dá um erro do tipo "missing dll".

O que eu queria saber é se existe alguma forma de compilar a dll juntamente com o resto do programa para que não seja necessário andar sempre com a dll "a traz".

Obrigado desde já 🙂

Posted (edited)

Boas!

Estou a fazer um programa simples para manipular imagens em quem utilizo uma biblioteca que encontrei na Internet (FreeImage) e essa biblioteca para funcionar precisa de uma dll. Quando compilo e corro o executável se a dll não estiver na mesma pasta que o executável o programa dá um erro do tipo "missing dll".

O que eu queria saber é se existe alguma forma de compilar a dll juntamente com o resto do programa para que não seja necessário andar sempre com a dll "a traz".

Obrigado desde já 🙂

Coloque o ficheiro DLL na pasta System32, assim o compilador encontra o ficheiro automaticamente ;D .

A pasta esta no directório C:\Windows .

Edited by polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

qual o seu compilador?

Estou a utilizar o Microsoft Visual C++ 2010 Express.

Coloque o ficheiro DLL na pasta System32, assim o compilador encontra o ficheiro automaticamente ;D .

A pasta esta no directório C:\Windows .

Sim, seria uma boa solução para funcionar apenas no meu computador. Mas assim teria que fazer o mesmo em todos os computadores onde pretendesse utilizar o programa.

Posted

Sim, seria uma boa solução para funcionar apenas no meu computador. Mas assim teria que fazer o mesmo em todos os computadores onde pretendesse utilizar o programa.

Então penso que a solução seja mesmo colocar o DLL na raiz do projecto.. Ao passares o programa para outro pc, tens de passar a pastinha do projecto, por isso não vejo porque não colocar lá o DLL

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

Coloque o ficheiro DLL na pasta System32, assim o compilador encontra o ficheiro automaticamente ;D .

A pasta esta no directório C:\Windows .

Isso nao e' uma boa solucao, porque depois para apagar a dll e' muito mais complicado, e imagina que a DLL e' substituida por uma versao mais recente, a DLL antiga deixa de funcionar(caso alguma funcao seja modificada)

Boas!

Estou a fazer um programa simples para manipular imagens em quem utilizo uma biblioteca que encontrei na Internet (FreeImage) e essa biblioteca para funcionar precisa de uma dll. Quando compilo e corro o executável se a dll não estiver na mesma pasta que o executável o programa dá um erro do tipo "missing dll".

O que eu queria saber é se existe alguma forma de compilar a dll juntamente com o resto do programa para que não seja necessário andar sempre com a dll "a traz".

Obrigado desde já 🙂

Isso das DLL's, dependendo do ponto de vista podem ser boas ou mas. Um bom ponto de uso de DLL's e' que se fizeres um update 'a DLL nao e' necessario mudar o exe(caso nao acrescentes/apagues uma funcao ou objecto).

Para nao teres muito trabalho deixa a DLL dentro da pasta do programa, pode ocupar mais espaco e mostra quais as DLL's que o teu programa usa, mas vai as pastas dos teus programas instalados e ve se eles nao andam com as DLL's num lado para o outro.

O meu conselho e' nao te preocupares com isso, deixa fica-las na pasta do exe.

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted (edited)

Isso nao e' uma boa solucao, porque depois para apagar a dll e' muito mais complicado, e imagina que a DLL e' substituida por uma versao mais recente, a DLL antiga deixa de funcionar(caso alguma funcao seja modificada)

Certo, mas para alguém que esteja a estudar alguma biblioteca, por exemplo SDL, e queira criar vários projectos sem estar a copiar os DLL para a raiz, é uma boa solução, e para os preguiçosos com outro tipo de razões, também é xb

Edited by polska

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

O que eu queria saber é se existe alguma forma de compilar a dll juntamente com o resto do programa para que não seja necessário andar sempre com a dll "a traz".

existe :

pegas no código do DLL e compilas como uma biblioteca estática.

dessa forma o código da biblioteca vai junto como o teu .exe

IRC : sim, é algo que ainda existe >> #p@p
Posted

Pelas vossas respostas, e porque não consegui fazer o que o HappyHippyHippo sugeriu, acho que vou mesmo deixar como está.

Obrigado a todos 🙂

Ou então perguntas ao Happy, tenho a certeza que te ajuda ;D

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.