CRIAR DLL

USUARIO.EXCLUIDOS 06/01/2005 14:31:49
#59005
E ae galera esperta!! boa tarde vbmaniacos, depois de alguns dias de férias viajando, curtindo um pouco a vida, estou de volta!!!. Gostaria de desejar um feliz ano novo pra essa turma gente fina!.

Gostaria de fazer também uma observação, e a turma que estava programando uma DLL, cade o povo? será que era só fogo de palha? (Como alguns moderadores sabiamente indicaram) aonde está todo mundo??

Aguardo manifestações! até mais ++
USUARIO.EXCLUIDOS 06/01/2005 14:37:47
#59008
GERMANIR

Realmente isto nunca consegui ir em frente. Se tu se lembra dos membros que queria mande msginternas e veja se eles estão frequentando o site vendo os dias do ultimo login. Acho que ficará mais fácil de manter o contato.
USUARIO.EXCLUIDOS 06/01/2005 14:42:39
#59010
não era só fogo de palha não, como você disse que ia se ausentar preferi esperar para não atrapalhar o grupo, estava com um texto prontinho para colocar aqui, veja:
Caros amigos antes de começarmos a aprender como se faz uma DLL achei melhor primeiro descrever o que é uma DLL, como também não possuo nenhum conhecimento sobre o assunto busquei na Net por vários artigos, e achei o que segue que no meu ponto de vista exemplifica bem o assunto.
Texto sobre DLL retirado da Internet:
A maioria das pessoas que utilizam ou utilizaram alguma versão do Microsoft Windows já ouviram pelo menos uma vez a palavra DLL. Significa Dynamic Link Library (Biblioteca de Linkedição Dinà¢mica).
Mas o que vem a ser uma Biblioteca de Linkedição Dinà¢mica?
Para entender o que é uma DLL, é necessário compreender que um programa é um conjunto de funções organizado de forma a executar uma ou mais tarefas.
Acontece que o programa, além dos dados que ele processa, também ocupa espaço na memória RAM de seu computador.
Algumas tarefas são comuns para vários programas, por exemplo: gravar uma informação no disco, apresentar uma mensagem na tela, etc..
Para economizar espaço em memória muitos programas compartilham funções comuns. Isso significa que elas devem ficar em um local que qualquer programa que necessite desses serviços possa utilizá-los.
As funções são então escritas dentro de um arquivo que possui uma extensão DLL, por exemplo, BWCC.DLL. Quando a DLL for "lida" do disco e colocada na memória, as funções que ela possui ficam disponíveis para os programas que necessitarem delas.
Se não forem utilizadas, os programas precisam possuir estas funções "dentro" de si próprios. Se isso acontecer, quando dois ou mais programas são executados, essas funções acabam ocupando espaço desnecessário uma vez que estão em duplicidade.
Não que seja obrigatório, mas vários programas conhecidos utilizam DLLs (MS-Word, MS-Excel, Quattro-Pro, etc..) e normalmente elas são construídas por fabricantes de compiladores ( Microsoft, Borland, etc.)
Existem basicamente 3 lugares no disco rígido onde as DLL’s podem ser colocadas, são eles:
1. O diretório onde o programa (.EXE) foi instalado
2. O diretório SYSTEM do Windows
3. O diretório WINDOWS.
A grande maioria dos programas existentes no mercado são criados com alguma linguagem de programação ( Visual Basic, Visual C++, Delphi, etc) e utilizam DLL’s que acompanham estas linguagens.
De tempos em tempos, os fabricantes implementam melhorias em suas linguagens de programação e apresentam novas versões ao mercado. Cada versão nova, vem acompanhada de suas respectivas DLL’s. Muitas dessas, apesar de serem novas versões continuam mantendo o mesmo nome de arquivo. Por exemplo, BWCC.DLL é um nome de uma DLL que acompanha produtos da Borland, em diversas versões diferentes mantendo o mesmo nome.
Normalmente uma DLL nova ( de versão mais recente ) costuma ser compatível com suas antecessoras, possuindo mais funções ou funções melhoradas.
Isso significa que, antigos programas que usavam antigas DLL’s, normalmente continuarão funcionando mesmo que uma versão mais atual dessa mesma DLL seja colocada no lugar da antiga. Entretanto, o inverso não ocorre.
Se tentarmos executar um programa que utiliza, por exemplo a versão 3.0 de uma determinada DLL, mas a versão dessa DLL que está disponível no computador é 2.0, muito provavelmente o programa não executará, apresentará problemas ou gerará uma mensagem de erro no Windows. Por que? Vários motivos podem ser relacionados, dentre eles:
· Funções novas que não existem na DLL antiga.
· Melhorias significativas em funções preexistentes ou tratamento de determinada tarefa, que não estão de acordo com o que o programa espera.
· etc.
A DLL é carregada (lida) do disco para a memória, quando o programa é executado. O Windows examina o programa e descobre qual é (ou quais são) a DLL que ele utiliza. Então ele efetua uma busca no disco rígido para ler esta DLL e permitir que o programa execute.
Esta pesquisa é feita na seguinte ordem:
1. O Diretório onde o programa (.EXE) se encontra
2. O Diretório corrente
3. O Diretório System do Windows
4. O Diretório Windows
5. Os diretórios indicados na variável de ambiente (PATH)
Um programa de instalação bem projetado, deve, antes de copiar arquivos de um disquete ou CD-ROM, verificar se no destino (diretório do disco rígido) não existe já um arquivo com esse nome. Se existir e for uma DLL, este mesmo programa deve verificar qual a versão desse arquivo. Se for mais antigo, ele pode substituir; se mais recente, deve manter a versão atual.
Como já foi dito anteriormente, existem 3 locais mais comuns para se colocar uma DLL. A maioria coloca ou no diretório SYSTEM ou no diretório que foi criado para o novo programa.
O problema de incompatibilidade pode surgir quando:
· Em um computador rodando um programa(1) que está em execução com uma DLL, por exemplo, versão 3, executa-se um outro programa(2) que necessite da versão 4. Como os DLL’s possuem o mesmo nome, o Windows não tentará carregar a DLL uma vez que a mesma já está na memória. Isto muito provavelmente irá gerar uma mensagem GPF (General Protection Fault - Falha Geral de Proteção) pois a versão antiga é (pode ser) incompatível com os serviços que o programa(2) necessita.
· Um programa instalador copia (sobrescreve) uma DLL já existente com uma versão antiga.
· Uma DLL antiga é copiada inadvertidamente para o diretório de um programa que necessita uma versão mais recente.
O que fazer então?
Primeiramente tomar muito cuidado com a origem do programa que se vai instalar. Antes de instalá-lo, leia a documentação que acompanha o programa para verificar se existe alguma informação a respeito.
A melhor forma continua sendo a prevenção. Crie uma cópia de reserva de seu diretório SYSTEM. Uma forma prática e rápida é compacta-lo utilizando um programa compatível ( WinZip, PkZip, etc) e copiar o arquivo gerado para um diretório seguro. Faça este arquivo após verificar que seu Windows está completamente operacional e que todos os programas funcionam perfeitamente bem. Sempre que instalar um novo programa, teste-o e teste também os programas que você já possuía. Se todos estiverem OK, atualize seu arquivo de segurança.
Se um dia, você instalar um programa e notar que após isso, alguma outra aplicação (ou até mesmo o Windows) ficou instável ou simplesmente não quer funcionar, descompacte o arquivo de segurança para restituir o sistema original.
Note que se você incluir o diretório Windows, todas as características (cor, tamanho de letra, tipo de cursor, etc..) também serão arquivadas. Assim sendo, se você efetuar alterações no sistema, lembre-se de atualizar sua cópia de segurança.
No meu resumo do texto acima:
DLL é um arquivo com uma ou mais funções, funções as quais podem ser acessadas por um ou mais programas minimizando espaço em disco e em memória, facilitando a produção de programas pois evita – se a repetição de códigos e facilita também a manutenção dos programas criados.
Como o objetivo do tópico é ensinar a criar e a trabalhar com DLLs, peço que os GURUS e demais membros do site que conheçam sobre o assunto, leiam e comentem o artigo antes de partimos para a criação das DLLs.
USUARIO.EXCLUIDOS 06/01/2005 18:26:18
#59076
Mandou bem! Wiliam, agora uma perguntinha meio iniciante,

o Windows tem várias DLLÂÂÂ'S, tem alguma maneira de saber as funções de uma determinada dll? por exemplo, dentro do diretório c:\windows\system tem uma dll chamada "DIGEST.DLL", tem alguma forma ou algum programa onde se é possivel saber pra que serve este DLL e como utilizar suas funções no VB?

t+++
USUARIO.EXCLUIDOS 07/01/2005 08:06:44
#59127
boa pergunta Germanir como também sou iniciante vou deixar para os Gurus responderem
USUARIO.EXCLUIDOS 07/01/2005 09:01:03
#59139
pois é, a muito tempo tenho essa dúvida, vamos esperar....
ver se algum Guru pode nos ajudar..
USUARIO.EXCLUIDOS 07/01/2005 09:14:07
#59143
Ver as funções de uma DLL tem como, agora o que elas fazem não.
USUARIO.EXCLUIDOS 07/01/2005 09:30:03
#59151
How? Como ver as funções?
USUARIO.EXCLUIDOS 07/01/2005 09:41:38
#59154
Espera que vou ver o nome aqui do aplicativo
USUARIO.EXCLUIDOS 10/01/2005 17:36:53
#59858
Flavio, o aplicativo seria esse
http://superdownloads.ubbi.com.br/download/redirx.cfm?packet=6252,4AUT,exe%2Einacstxt%2Fselif%2Fmoc%2Exgolana%2Ewww%2F%2F%3Aptth
é um tal de analogx quando aberto clique em process file e procure alguma DLL e veja o resultado. vou esperar algumas respostas depois volto a postar.
USUARIO.EXCLUIDOS 10/01/2005 17:40:04
#59862
detalhe, ele também mostra OCX e EXE
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas