O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Escrevendo uma DLL

Iniciado por Kvothe, 01/04/2014 às 16:52

Escrevendo uma DLL
Neste tutorial irei ensinar a vocês a escreverem uma simples DLL e executa-lá no maker.
Requisitos para poder prosseguir : Necessário ter o Visual Studio C++ e ter um certo conhecimento.
Recomendo ler: Win32API

Primeiro passo :

Primeiro iremos criar um novo projeto no Visual Studio. Escolheremos a opção Win32 Console Application e iremos por o nome de "Teste".


Agora clicaremos em Ok, depois irá aparecer uma janela (Win 32 Application Wizard - Teste), clique em "Next". Depois irá aparecer outra janela(Application Setting), clique no marcador da "DLL" em Application Type, depois em Additional Options, clique em Empty Project e de Finish.


Agora iremos clicar em "Header Files" com o botão direito do Mouse e adicionaremos um arquivo da espécie header(.h). Depois iremos clicar em "Source Files" com o botão direito do Mouse e adicionaremos um arquivo da espécie .cpp.

Spoiler


[close]

Segundo passo :

Agora iremos escrever nos arquivos ("teste.h" e "teste.cpp"). Iremos inserir neles os códigos para dar alguma função para a DLL.


teste.h : Neste iremos inserir o seguinte código.
__declspec(dllexport) : Torna-se disponível uma função na DLL para que outras aplicações possam a usar, no caso seria a MY_FIRST_DLL.
extern "C" : Usa a forma padrão do C para nomear as funções.


teste.cpp : Neste iremos inserir o seguinte código :
Caso a função "hello" seja chamada irá retorna a 1.
Terceiro passo :
Agora iremos usar o comando Build Solution, para verificar se há algum erro. Para isso basta você pressionar a tecla F7.

Quarto passo :

  • Agora iremos chamar a DLL que criamos no Maker. Para isso copie o arquivo da dll que deve estar na pasta do seu projeto — que você criou no Visual Studio — para a pasta de um projeto qualquer de Rpg Maker.
  • Depois de ter copiado a DLL para a pasta do "projeto qualquer de Rpg Maker", vá no editor de scripts do seu "projeto qualquer de Rpg Maker", e crie uma variável chamada teste, o valor desta variável será a classe Win32API, essa classe contém 4 argumentos que precisam ser preenchidos, que seriam esses :

Win32API.new("nome da dll.dll", "nome da função da dll", "tipos de argumentos internos", "tipo do valor de retorno.")
nome da dll.dll => Nome da DLL.
nome da função => Nome da função da DLL.
tipos de argumentos internos => São os parâmetros usados para iniciar uma determinada função. Eles são :
 "n" e "l" : Representam ambos números literais.
 "p" : Representa uma string, um texto entre aspas.
 "i" : Representa um número inteiro.
tipo do valor de retorno :  determina o tipo de parâmetro do valor do parâmetro em reposta dos argumentos da função.


A explicação desses argumentos em massa será explicado em outra aula. Veja abaixo como ficará as definições desses argumentos.
teste = Win32API.new("Teste.dll", "hello", "", "L")
A, B, C,D


A => Nome da DLL que criamos.
B => Nome da função em que definimos nos arquivos (teste.h, teste.cpp)
D => Parâmetro da resposta.

Após definirmos o valor da variável teste. Agora iremos chamar a função(que no caso seria a "hello"), para isso usaremos o método "call" presente na classe Win32API, ele irá chamar a função "hello" que irá retornar ao valor 1.

teste = Win32API.new("Teste.dll", "hello", "", "L")
teste.call


Se você executar esse código no seu "projeto qualquer de Rpg Maker", nada irá acontecer pois irá somente retornar ao valor de número 1. Então para vermos o retorno basta usamos o comando msgbox para imprimir numa mensagem o retorno.

teste = Win32API.new("Teste.dll", "hello", "", "L")
msgbox teste.call


Inserindo esses códigos no seu "projeto qualquer de Rpg Maker", que pode ser inserido acima do Main. Base executar o seu projeto, e irá aparecer uma mensagem com o valor 1.


Para finalizar; Recomendo que você vá mudando os valores, tentando criar novos retornos e funções e executa-los no maker.