O que é uma API (Application Programming Interface - Interface de Programação de Aplicativos)?
São blocos de DLL's usados para gerenciar suas principais funções (funções da DLL), e elas nos darão a chave para controlar tudo (da DLL). No caso, as mais usadas são a Win32API e a Win32OLE. Como o RGSS só dá suporte à Win32API, então iremos falar dela.
Win32API: É um conjunto base de API para o SO do Windows.
Chamar uma API é basicamente chamar uma DLL, definir a função que irá ser usada, os tipos de parâmetros e o valor dos seus parâmetros. Nisso tudo irá haver o retorno de um objeto.
A classe Win32API tem 4 argumentos essenciais que precisam ser definidos. Veja abaixo:
name: Neste argumento, iremos definir o nome da DLL que irá ser chamada. Por exemplo, a DLL "user32" que fica dentro da pasta "C:\Windows\system32\".
O tipo do valor desse argumento deve ser uma String (Texto).
function: Neste argumento, iremos definir o nome da função que será chamada. Por exemplo, a função Beep da DLL "kernel32".
O tipo do valor desse argumento deve ser uma String (Texto).
imputArray: Trata-se de um conjuntos de letras (string) que irá definir os parâmetros que serão usados para iniciar a function. Existem, pelo menos, 5 letras em questão (n, l, i, p, v), mais abaixo você verá o que cada letra significa.
export: Neste argumento, definimos o valor do parâmetro que determina o valor do parâmetro em resposta da determinada function. É bem simples a lógica em si. Exemplo: Suponhamos que você chama uma DLL, você determina a sua função e a função da DLL que irá ser chamada irá desenhar um quadrado na tela. Como que o RGSS irá identificar que você clicou no quadrado? A resposta é através do export. Se no caso a função retornar o valor de uma String (Texto), você irá definir o export como "p" e assim por diante.
n(Long) ou l(Long): Representa números não literais.
i(Integer): Representa o integers (números inteiros, bignums, fixnums)
p(String): Representa uma String (texto).
v(Void): Representa o valor nulo (nil).
Agora, iremos chamar nossa primeira DLL, será algo bem simples. Chamaremos a DLL "kernel32", a função será o Beep — Usado para gerar tons simples. Veja abaixo todo o código e, logo após, as suas explicações e como achá-los.
Segundo passo: É saber qual função está sendo chamada da DLL. No caso acima, é a função do Beep (que é usado para gerar tons simples.)
Obs.: Há sites específicos que mostram as funções de algumas DLLs, como, por exemplo, o site AllAPI.
Terceiro passo: É saber os parâmetros da imputArray. E como irei saber os benditos parâmetros da imputArray? Existem sites de buscas que mostram, de forma detalhada, as funções da DLL, como o MSDN da própria Microsoft. Bom, como estamos chamando a DLL "kernel32" e sua função "Beep", vamos usar o site de busca AllAPI. Vamos por partes.
Entrando no site, você verá uma coluna de cor verde, e nessa coluna terá a opção API List, clique lá. Após o clique, irá aparecer um index com as letras do alfabeto, logo abaixo do index, há algumas funções de várias DLLs do Windows (a maioria são da "user32" e do "kernel32"). Como estamos procurando a função Beep, clique no index B. Após o clique, irá aparecer abaixo a função Beep, clique nela.
Após o clique, irá aparecer uma nova página contendo a descrição da função, a DLL que a pertence, os parâmetros do imputArray e o valor do parâmetro do export. Veja abaixo mais detalhadamente:
Vermelho e Verde: Aqui é o nome da função da DLL. No caso, é o Beep.
Azul: Aqui é o nome da DLL. No caso, é a kernel32.
Roxo escuro: Aqui ficam os parâmetros do imputArray. No caso, seria "LL".
Rosa: Aqui fica o parâmetro do export. No caso, seria "L".
Abaixo há uma tradução do quadrinho cinza para que vocês entendam melhor.
Chamar função Beep da DLL "kernel32" (valor do imputArray dwFreq é Long(L), valor do imputArray dwDuration é Long(L)) valor do export é Long(L).
Daí podemos concluir que o nome da DLL é "kernel32", a sua função é "Beep", o parâmetro do imputArray é "LL" e o parâmetro do export é "L".
dwDuration: Como está escrito no site, é o valor específico da duração em milissegundos do som.
Com isso, podemos saber os argumentos a serem definidos. Vejamos abaixo um código exemplo: O sonzinho é meio sinistro, mas tá valendo.
Tópico original:
http://tutorial-dax.weebly.com/win32api.html
São blocos de DLL's usados para gerenciar suas principais funções (funções da DLL), e elas nos darão a chave para controlar tudo (da DLL). No caso, as mais usadas são a Win32API e a Win32OLE. Como o RGSS só dá suporte à Win32API, então iremos falar dela.
Win32API: É um conjunto base de API para o SO do Windows.
Chamar uma API é basicamente chamar uma DLL, definir a função que irá ser usada, os tipos de parâmetros e o valor dos seus parâmetros. Nisso tudo irá haver o retorno de um objeto.
A classe Win32API tem 4 argumentos essenciais que precisam ser definidos. Veja abaixo:
- Código:
Win32API.new(name, function, imputArray, export)
Vejamos agora as explicações dos elementos:
name: Neste argumento, iremos definir o nome da DLL que irá ser chamada. Por exemplo, a DLL "user32" que fica dentro da pasta "C:\Windows\system32\".
O tipo do valor desse argumento deve ser uma String (Texto).
function: Neste argumento, iremos definir o nome da função que será chamada. Por exemplo, a função Beep da DLL "kernel32".
O tipo do valor desse argumento deve ser uma String (Texto).
imputArray: Trata-se de um conjuntos de letras (string) que irá definir os parâmetros que serão usados para iniciar a function. Existem, pelo menos, 5 letras em questão (n, l, i, p, v), mais abaixo você verá o que cada letra significa.
export: Neste argumento, definimos o valor do parâmetro que determina o valor do parâmetro em resposta da determinada function. É bem simples a lógica em si. Exemplo: Suponhamos que você chama uma DLL, você determina a sua função e a função da DLL que irá ser chamada irá desenhar um quadrado na tela. Como que o RGSS irá identificar que você clicou no quadrado? A resposta é através do export. Se no caso a função retornar o valor de uma String (Texto), você irá definir o export como "p" e assim por diante.
Significado das letras:
n(Long) ou l(Long): Representa números não literais.
i(Integer): Representa o integers (números inteiros, bignums, fixnums)
p(String): Representa uma String (texto).
v(Void): Representa o valor nulo (nil).
Chamando nossa primeira DLL:
Agora, iremos chamar nossa primeira DLL, será algo bem simples. Chamaremos a DLL "kernel32", a função será o Beep — Usado para gerar tons simples. Veja abaixo todo o código e, logo após, as suas explicações e como achá-los.
- Código:
beep = Win32API.new("kernel32.dll", "Beep", "LL", "L")
beep.call(0x7FFF, 50)
Segundo passo: É saber qual função está sendo chamada da DLL. No caso acima, é a função do Beep (que é usado para gerar tons simples.)
Obs.: Há sites específicos que mostram as funções de algumas DLLs, como, por exemplo, o site AllAPI.
Terceiro passo: É saber os parâmetros da imputArray. E como irei saber os benditos parâmetros da imputArray? Existem sites de buscas que mostram, de forma detalhada, as funções da DLL, como o MSDN da própria Microsoft. Bom, como estamos chamando a DLL "kernel32" e sua função "Beep", vamos usar o site de busca AllAPI. Vamos por partes.
Entrando no site, você verá uma coluna de cor verde, e nessa coluna terá a opção API List, clique lá. Após o clique, irá aparecer um index com as letras do alfabeto, logo abaixo do index, há algumas funções de várias DLLs do Windows (a maioria são da "user32" e do "kernel32"). Como estamos procurando a função Beep, clique no index B. Após o clique, irá aparecer abaixo a função Beep, clique nela.
Após o clique, irá aparecer uma nova página contendo a descrição da função, a DLL que a pertence, os parâmetros do imputArray e o valor do parâmetro do export. Veja abaixo mais detalhadamente:
Vermelho e Verde: Aqui é o nome da função da DLL. No caso, é o Beep.
Azul: Aqui é o nome da DLL. No caso, é a kernel32.
Roxo escuro: Aqui ficam os parâmetros do imputArray. No caso, seria "LL".
Rosa: Aqui fica o parâmetro do export. No caso, seria "L".
Abaixo há uma tradução do quadrinho cinza para que vocês entendam melhor.
Chamar função Beep da DLL "kernel32" (valor do imputArray dwFreq é Long(L), valor do imputArray dwDuration é Long(L)) valor do export é Long(L).
Daí podemos concluir que o nome da DLL é "kernel32", a sua função é "Beep", o parâmetro do imputArray é "LL" e o parâmetro do export é "L".
- Código:
beep = Win32API.new("kernel32.dll", "Beep", "LL", "L")
beep.call(0x7FFF, 50)
- Código:
beep.call(dwFreq, dwDuration)
dwDuration: Como está escrito no site, é o valor específico da duração em milissegundos do som.
Com isso, podemos saber os argumentos a serem definidos. Vejamos abaixo um código exemplo: O sonzinho é meio sinistro, mas tá valendo.
- Código:
dwDuration = 50
beep = Win32API.new("kernel32.dll", "Beep", "LL", "L")
(5000...5050).each { |dwFreq|
beep.call(dwFreq, dwDuration)
}
Tópico original:
http://tutorial-dax.weebly.com/win32api.html
Última edição por Valentine em Sex Dez 17, 2021 10:07 pm, editado 1 vez(es)