• 0
Sign in to follow this  
NöU@

(Resolvido) Ajuda para Carregar uma Dll

Question

Aí pessoal? beleza?

To precisando de uma ajuda

eu criei uma dll pro meu programa e quando ela (dll) tava na pasta do EXE, o programa rodava normalmente

só que resolvi criar uma pasta separada para as dll's

e aí que tah o problema: não consigo carregá-las

se precisar eu mando o source da dll, ela é simples, mas ajuda....

Alguma ajuda, idéia??

Vlw!!

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0
eu criei uma dll pro meu programa e quando ela (dll) tava na pasta do EXE, o programa rodava normalmente

só que resolvi criar uma pasta separada para as dll's

e aí que tah o problema: não consigo carregá-las

Dlls podem ser carregadas de duas maneiras: estaticamente ou dinamicamente

O modo estático sempre se refere ao mesmo endereço de entrada na mesa DLL, e o windows, ao carregar o aplicativo para a memória, carrega tambem a dll. Caso a dll não possa ser encontrada o windows não deixa o aplicativo ser executado poruqe falta um componente essencial para a execção do mesmo.

ex:

function soma (A, B: Extended ) : Extended; external 'teste.dll';

se estiver em outra pasta

function soma (A, B: Extended ) : Extended; external 'c:\Dlls\teste.dll';

Outro modo possivel de impotação de DLLs é o dinâmico. Neste caso, o nome da dll e o nome e índice da função a ser usada são passadas apenas em tempo de execução

ex:

Handle := LoadLibrary('DateTime.dll');

se estiver em outra pasta

Handle := LoadLibrary('c:\Temp\'DateTime.dll');

abraço

Share this post


Link to post
Share on other sites
  • 0
eu posso usar a função ExtractFilePath(application.ExeName), para pegar a pasta do aplicativo e então pegar Bin onde estão as dll's??

se as suas dlls estiverem na mesma pasta onde está o seu aplicativo não tera que fazer nada

entretanto se estiverem em outra pasta tera que informar o caminho para elas, como no exemplo que te passei, ou voce pode copia-las para dentro da pasta system do windows

abraço

Share this post


Link to post
Share on other sites
  • 0

mas a dll não tá na mesma pasta do programa.

eu qeria q fizesse assim

pegasse onde a aplicação tá instalada (por exemplo c:\Server\server.exe) e a dll (c:\Server\BIN\minhaDll.Dll)

porque ele pode ser instalada em otra pasta ou unidade, entendeu?

vlw pela ajuda!!

no aguardo

Share this post


Link to post
Share on other sites
  • 0
porque ele pode ser instalada em otra pasta ou unidade, entendeu?

então copie as dlls para dentro da pasta system do windows, e o seu programa pode estar em qualquer outra pasta

abraço

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this