Video - Master

Fique Por Dentro De Tudo Que Rola No Mundo Dos Games Aqui.
 
InícioPortalCalendárioFAQBuscarRegistrar-seMembrosGruposLogin

Compartilhe | 
 

 Entendendo o Conceito das Api´s - Visual Basic

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Lynx
Administrador
Administrador


Masculino
Número de Mensagens : 499
Idade : 28
Localização : Cotia
humor : Jogar
emprego/lazer : Programador
Data de inscrição : 29/11/2007

MensagemAssunto: Entendendo o Conceito das Api´s - Visual Basic   Ter Dez 11, 2007 4:20 pm

Galera, espero que Leiam, quem se interessa por Programação, pois caso não leiam, não entederão nads...

Antes de comecar quero dizer que este artigo sempre esteve na minha cabeca mas foi dificil colocar ele em pratica. Espero que fique claro e objetivo pois abordar este assunto e um tanto quanto complicado para iniciantes e ate mesmo para usuarios intermediarios.

Usar API e uma solucao boa (ainda mais quando se conhece profundamente o funcionamento do sistema operacional ou pelo menos a biblioteca referenciada para uso). API significa Application Programming Interface (ou Interface de Programacao de Aplicativos) e serve para que nossas aplicacoes escritas em Visual Basic facam pontes com o sistema operacional e acessem rotinas (geralmente escritas em C/C++ e em alguns casos em Assembly) que nativamente a camada superior da linguagem nao possui acesso.

Para comecar vamos entender um pouco mais sobre a teoria de API. Uma API e uma chamada a funcao (ou sub) que executa uma rotina e retorna um valor, muda o estado de um componente ou escreve um arquivo por exemplo. Dificilmente voce vera uma API ser declarada sem a utilizacao de parametros

Veja este exemplo simples de uso de uma API que nao retorna valores, por isto e declarada como Sub (em C/C++ ela e uma void function).

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Sleep 2000
MsgBox "Esperei por 2 segundos..."
End Sub



E um bom comeco nao acha ?
Vou explicar, as declaracoes Declare Sub e Declare Function sao extremamente necessarias para que uma API seja reconhecida pelo compilador, sem eles o compilador nao entendera o porque do uso de um determinado codigo (o uso de Private aqui aplica-se somente pelo fato do codigo estar dentro de um form).

Em seguida e preciso informar o nome da funcao seguida do prefixo "Lib" e apontar o nome da dll que contem a API desejada. Lembre-se que o uso de API requer necessariamente que seus arquivos de biblioteca (as dlls) estejam "em path", ou seja, copiadas no minimo em $winsystem ou $winsystem32 para que sejam reconhecidas e funcionem.

Uma das grandes duvidas em relacao a APIs consiste simplesmente de uma das perguntas mais basicas relativas a desenvolvimento: "Quando devo usar APIs ?"

A resposta pode parecer simplista mas e essa mesma: "Quando for necessario".
Voce deve pensar "legal e quando saberei que e necessario". Bom isso e uma questao de conhecimento de duas coisas basicas: o que aplicacao precisa fazer e o que o Visual Basic oferece nativamente.

Imagine a seguinte situacao: voce precisa gravar as configuracoes do programa em um arquivo ini pois se o usuario nao souber mexer no registro do windows sera perigoso solicitar a ele que exporte um arquivo .reg com as configuracoes obtidas atraves das funcoes GetSetting e SaveSetting.

Pois bem, o Visual Basic lhe oferece acesso a arquivos nativamente, mas nao possui nenhuma funcao nativa para ler/escrever arquivos INI. Por outro lado, o sistema operacional necessita disso para muitas coisas, logo dentro da kernel voce vai encontrar a funcao (API) que permite ler e gravar dados de uma estrutura INI.

Um simples exemplo do uso da API que faz a leitura de arquivos INI em secoes, chaves e valores:
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpSectionName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long


Esta API tem muitos parametros para ser executada, voce pode estudar ela aqui mesmo no VBMania como em outros sites da Internet (ela e amplamente divulgada e nao vou me ater a explicar detalhes de sua estrutura).

Percebeu a diferenca ?

Ate um momento o Visual Basic (e ate mesmo o framework do .NET) vao te ajudar muito, mas de um certo momento para frente, sera necessario "descer" um pouco o nivel de codigo e pedir ao sistema operacional que ajude voce.

APIs obviamente atendem as mais diversas situacoes e finalidades que voce possa imaginar (atendem de tudo mesmo, desde gerenciamento de janelas, componentes, perifericos, dispositivos, enfim, tudo relacionado ao sistema operacional). Obviamente por essa abrangencia e imprescendivel que voce estude quais sao e como usar as APIs, pois muitas delas tem interferencia direta no sistema operacional.

Um exemplo bem classico deste tipo de situacao e a API SendMessage. O que ela faz e enviar uma mensagem para um objeto (baseado em seu Handle) e retorna um valor de sucesso (ou nao) da operacao. Veja um simples exemplo do uso desta API, nesta situacao estou passando um textbox para readonly em tempo de execucao:


Private Const WM_USER = &H400
Private Const EM_SETREADONLY = (WM_USER + 31)
Private Declare Function SendMessage Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Any) As Long

Sub Form_Load()
Dim TmpStr As String
Dim ret as Long

Open "C:AUTOEXEC.BAT" For Input As #1
While Not Eof(1)
Line Input #1, TmpStr
Text1.Text = Text1.Text & TmpStr & vbcrlf
Wend
ret = SendMessage(Text1.hWnd, EM_SETREADONLY, True, 0&)
If ret = 0 Then
MsgBox "Nao foi possivel passar a textbox para somente leitura !",16
End If
End Sub


Muitas APIs contam com verdadeiras estruturas de dados passadas como parametros (voce ja deve ter ouvido falar por exemplo do famoso Type Rect). As APIs por natureza podem esperar valores longos, strings, types ou ate mesmo ANY (qualquer coisa).

Quando voce ve nas declaracoes de uma API o operador ByVal ou mesmo ByRef pode ter certeza que o valor passado para a funcao pode sofrer alteracoes e ate mesmo ele pode ser usado como retorno. Por exemplo existem APIs que tem sua declaracao feita com um retorno Longo mas na verdade eles retornam o sucesso ou nao da operacao, quando na verdade, o verdadeiro valor que lhe interessa esta em um dos parametros passados como argumento da API.

Analise neste mesmo artigo a declaracao da API usada para ler arquivos INI por exemplo, repare que dois parametros dela sao
ByVal lpReturnedString As String, ByVal nSize As Long


Estes valores sao retornados pela funcao, a API em si retornada zero ou diferente disto para o sucesso/insucesso da execucao da API, o verdadeiro valor que interessa foram passados por voce via codigo para variaveis vazias ate entao que recebem este dado como retorno da API.

O Visual Basic oferece a voce o mapa do tesouro, pena que ele venha com dicas em "japones" praticamente. O comeco e muito dificil !

Junto com o Visual Basic voce encontrar o API Text Viewer, este programa permite que voce carregue a lista de todas as APIs e Constantes utilizadas pelo sistema operacional.Ele vem com 2 arquivos instalados por padrao:
- MAPI32.TXT que contem todas as APIs, Constantes e Types relativas a E-mail no padrao MAPI.

- WIN32API.TXT que contem todas as APIs, Constantes e Types relativas ao sistema operacional (e nesse arquivo que voce deve perder horas a fio afim de entender quais APIs existem).

Atencao, o API Text Viewer nao da detalhes do funcionamento ou mesmo das acoes que uma API executa, voce copiar sua declaracao e procurar pela Internet o que aquela API faz e como ela e usada.

Bom era isso, se fiquei devendo algum detalhe, por favor comentem que ajusto o artigo a medida do que for necessario.


Abraços...;D Very Happy
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://revolutiongta.forumeiros.com/
Lelis
Moderador
Moderador


Masculino
Número de Mensagens : 732
Idade : 22
Localização : ??????
Data de inscrição : 08/11/2007

MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Qua Dez 12, 2007 4:21 am

fiquei com preguiça de ler tudo rsrsrsrs
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Lynx
Administrador
Administrador


Masculino
Número de Mensagens : 499
Idade : 28
Localização : Cotia
humor : Jogar
emprego/lazer : Programador
Data de inscrição : 29/11/2007

MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Qua Dez 12, 2007 5:36 am

é Lelis, programação é assim mesmo..
tem que ler analisar, pensar...
essas coisas todas..
ma é muito bom...

Abraços..

(Esse exemplo de API, são as DLL que pega do pc e insere no progrmaa)
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://revolutiongta.forumeiros.com/
Tio Barnabe
Gamer Revolution
Gamer Revolution


Masculino
Número de Mensagens : 613
Idade : 21
Localização : Paris-Senegal
humor : Desumorizado
emprego/lazer : Desempregado.
Data de inscrição : 04/11/2007

MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Qua Dez 12, 2007 8:12 am

Tava começando a ler (lá para o 4 parágrafo)e não estava entendendo muito,então resolvi parar e pesquisar sobre programação depois que entender + sobre assunto posso explicar mais claramente(Lynx escreveu muito "cientificamente")para todos os iniciantes saberem do que se trata.

_________________
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://www.gamestart.com.br/index.php
Lynx
Administrador
Administrador


Masculino
Número de Mensagens : 499
Idade : 28
Localização : Cotia
humor : Jogar
emprego/lazer : Programador
Data de inscrição : 29/11/2007

MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Qua Dez 12, 2007 8:19 am

Tipo, eu coloquei a definição de Api, pq é um assunto pouco abordado pelo fato dele ser
de difícil compreendimento..
Então, pesquisei e peguei uma definição mais clara, espero que entendam.. Vo procurar depois um artigo com dicas de iniciantes de programação, pra que vcs entendam melhor. Eu sei que é meio complicado, mas espero tentar ajudar ao máximo todos vcs..

Definição de Api:


API, de Application Programming Interface (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para utilização de suas funcionalidades por programas aplicativos -- isto é: programas que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

De modo geral, a API é composta por uma série de funções acessíveis somente por programação, e que permitem utilizar características do software menos evidentes ao usuário tradicional.

Por exemplo, um sistema operacional (como o Linux) possui uma grande quantidade de funções na API, que permitem ao programador criar janelas, acessar arquivos, criptografar dados, etc. Ou então programas de desenho geométrico que possuem uma API específica para criar automaticamente entidades de acordo com padrões definidos pelo usuário.

No caso de sistemas operacionais, a API costuma ser dissociada de tarefas mais essenciais, como manipulação de blocos de memória e acesso a dispositivos. Estas tarefas são atributos do Kernel ou núcleo do sistema, e raramente são programáveis.

Mais recentemente o uso de APIs tem se generalizado nos chamados plugins, acessórios que complementam a funcionalidade de um programa. Os autores do programa principal fornecem uma API específica para que outros autores criem plugins, estendendo as funcionalidades do programa para os usuários comuns.
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://revolutiongta.forumeiros.com/
Tio Barnabe
Gamer Revolution
Gamer Revolution


Masculino
Número de Mensagens : 613
Idade : 21
Localização : Paris-Senegal
humor : Desumorizado
emprego/lazer : Desempregado.
Data de inscrição : 04/11/2007

MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Qua Dez 12, 2007 8:24 am

De modo geral API é:

Programas que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

Por exemplo, um sistema operacional (como o Linux) possui uma grande quantidade de funções na API, que permitem ao programador criar janelas, acessar arquivos, criptografar dados, etc. Ou então programas de desenho geométrico que possuem uma API específica para criar automaticamente entidades de acordo com padrões definidos pelo usuário.

Mais recentemente o uso de APIs tem se generalizado nos chamados plugins, acessórios que complementam a funcionalidade de um programa. Os autores do programa principal fornecem uma API específica para que outros autores criem plugins, estendendo as funcionalidades do programa para os usuários comuns.

_________________
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://www.gamestart.com.br/index.php
Conteúdo patrocinado




MensagemAssunto: Re: Entendendo o Conceito das Api´s - Visual Basic   Hoje à(s) 8:59 pm

Voltar ao Topo Ir em baixo
 
Entendendo o Conceito das Api´s - Visual Basic
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [AJUDA] Pouso Visual e Por Instrumentos
» Como pousar visual sem ILS?
» [Brasil] Gol recebe novo avião para pistas curtas e muda identidade visual após 14 anos de operação
» Unity C# | Visual Studio C#
» Entendendo o Back Course

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Video - Master :: Microsoft :: Programação-
Ir para: