FCorvelo Posted August 11, 2012 at 01:30 PM Report #472022 Posted August 11, 2012 at 01:30 PM 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á 🙂
seuqram Posted August 11, 2012 at 02:57 PM Report #472024 Posted August 11, 2012 at 02:57 PM qual o seu compilador?
polska Posted August 11, 2012 at 03:39 PM Report #472025 Posted August 11, 2012 at 03:39 PM (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 August 11, 2012 at 03:40 PM by polska Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.
FCorvelo Posted August 11, 2012 at 04:29 PM Author Report #472027 Posted August 11, 2012 at 04:29 PM 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.
polska Posted August 11, 2012 at 05:07 PM Report #472028 Posted August 11, 2012 at 05:07 PM 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.
pikax Posted August 11, 2012 at 05:08 PM Report #472029 Posted August 11, 2012 at 05:08 PM 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."
polska Posted August 11, 2012 at 06:46 PM Report #472038 Posted August 11, 2012 at 06:46 PM (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 August 11, 2012 at 06:46 PM by polska Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.
HappyHippyHippo Posted August 11, 2012 at 06:55 PM Report #472040 Posted August 11, 2012 at 06:55 PM 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 Portugol Plus
FCorvelo Posted August 11, 2012 at 07:40 PM Author Report #472044 Posted August 11, 2012 at 07:40 PM Pelas vossas respostas, e porque não consegui fazer o que o HappyHippyHippo sugeriu, acho que vou mesmo deixar como está. Obrigado a todos 🙂
polska Posted August 12, 2012 at 12:37 PM Report #472081 Posted August 12, 2012 at 12:37 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now