que se imagina. Vou citar dois exemplos praticos:01. Digamos que voce tem uma funcao que serve para que o usuario via e-mail entre em contato com voce para esclarecimento de duvidas. Tudo bem ate ai, porem voce possui 15 aplicacoes que se utilizam dessa mesma funcao. Certo dia voce precisa mudar o e-mail de contato, como fazer? Gerar um novo executavel de cada uma das aplicacoes informando o novo e-mail de contato e enviar aos clientes, sim pode ser, ou deixar essa funcao em uma DLL, assim, voce nao precisa dispor uma nova compilacao do executavel, somente da DLL que contem a funcao.02. Voce desenvolveu uma funcao super util e quer que todos desfrutem da mesma funcao, porem nao quer disponibilizar o codigo em si (mui amigo voce em!!!), como fazer? Simples, coloque a funcao em uma DLL, nela seu codigo estara 100% seguro (pelo menos ate onde conheco nao existem decompiladores para DLL) e todos podem utilizar a sua funcao.Arquivos INIEm resumo sao arquivos utilizados para armazenamento e recuperacao de dados, como um exemplo bastante simples de utilizacao, podemos citar o armazenamento da posicao Top e Left do Form no momento em que o mesmo foi fechado, para que quando seja aberto novamente se se posicione onde estava anteriormente.A estrutura funcional de um Arquivo INI e similar a um banco de dados, onde temos:Secoes: Conjunto que contem chaves e Valores, em analogia a um Banco de Dados pode-se dizer que e a Tabela.Chaves: Usado para Identificacao correta dos Valores, em analogia a um Banco de Dados pode-se dizer que e o Campo.Valores: E usado para atribuicao de um Valor a uma chave, em analogia a um Banco de Dados pode-se dizer que e o Dado contido no Campo.Estrutura Arquivo INIEstrutura Banco de Dados[Clientes]Nome=Eledio de Souza JuniorAlgo que acho importante mencionar e que as operacoes feitas em Arquivos INI, tanto de leitura como de escrita nao retornam nenhum erro, assim, se o Arquivo INI nao existir e voce tentar ler algum valor de uma chave ele retornara "" (vazio), caso tente escrever ele criara o arquivo, a secao e a chave e definira o valor informado, fica a seu criterio avaliar ate que ponto esse nao retorno de erro pode ajudar ou nao.DesenvolvimentoInicie o Visual Basic, na tela New Project, escolha a opcao ActiveX DLL.Renomeie o Projeto como ArquivoINI e a classe criada: INI, e nada mais pratico do que falar de DLL usando uma, na classe Main declare as seguintes APIs, sendo a primeira para Escrita e a segunda Leitura no Arquivo INI:01. Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long02. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongDeclare a seguinte Variavel para armazenamento e recuperacao do diretorio do arquivo INI.Private ArqINI as String Implemente as seguintes funcoes: Public Function ReadINI(ByVal Secao As String, ByVal Chave As