Escrevendo uma DLL #2
Nesta aula você irá aprender a escrever uma DLL é a chama-la no Maker. Nesta DLL iremos especificar argumentos nas funções.
Recomendo que vocês leiam essas aulas abaixo primeiro antes de prosseguir nessa:
Win32API, Escrevendo uma DLL
Win32API, Escrevendo uma DLL
Irei utilizar nessa aula o Visual Studio 2013 para montar a DLL!
Primeiro passo:
Bom o nosso primeiro passo é criar o projeto no Visual Studio. Segue-se os mesmo procedimentos tomando na aula Escrevendo uma DLL. Porém iremos nomear o projeto de MathTestDLL. Por que o intuito mesmo dá aula e criar funções com argumentos voltado a operações básicas. Crie os arquivos header e source com ambo os nomes "Header.h" and "Source.cpp". O nome da função que tornará disponível a outras aplicações será MY_DLL_TEST_MATH. Abaixo as imagens do código do Header e Source respectivamente apresentadas.
Segundo passo :
Agora iremos criar a função. Tendo em mente que a função que iremos criar terá por função somar dois argumentos definidos. Primeiro vamos definir o argumento do arquivo Header. Iremos usar o long para isso. O nome da função será Add e dentro dos parênteses terá dois argumentos(x e y) com o valor long. Veja abaixo a screen.
Agora iremos definir o bloco dessa função do arquivo Source. Fazendo o mesmo processo de chamar a função que está no Header. O bloco terá por retorno o valor x + y. Lembre-se de por entre parênteses. Veja abaixo a imagem.
Terceiro passo:
Agora iremos usar o comando Build Solution, para verificar se há algum erro. Para isso basta você pressionar a tecla F7. É salve o projeto também. Depois disso pegue a dll gerada que deve estar na pasta Debug do projeto que você criou e a transfere para um projeto qualquer do maker e deixe-o na pasta do jogo.
Quarto passo:
Agora iremos executar a função Add da dll MathTestDLL no Maker. Isso é bem simples caso você leu a aula de Win32API e entendeu os conceitos ficará bem fácil. Lembra que iniciamos a função Add com long? Então esse inicio será o valor da exportação. Como você sabe long e representado por l. Lembra dos valores que definimos nos parênteses da função Add? Tinha dois argumentos com valores long(x e y), esses serão o valor da importArray. Como tinha dois argumentos com valores longs será dois longs no caso "ll". Sabendo disso basta chamarmos a classe Win32API e definirmos os seus argumentos. Veja abaixo.
dll = Win32API.new(name, function, importArray, exportValue)
name : Nome da DLL, no nosso caso é MathTestDLL.
function : Nome da função da DLL a ser executada, no nosso caso é a Add
importArray : Valores dos argumentos da função, no nosso caso é "LL"
exportValue : Valor da exportação da DLL, no nosso caso é "L"
dll = Win32API.new("MathTestDLL.dll", "Add", "LL", "L")
Agora iremos chamar a função e definir os seus argumentos. Lembra que dentro dos parênteses definimos dois argumentos? Então serão os argumentos que iremos especificar no comando 'call'. No caso é a especificação dos valores x e y que irão retornar ao valor somado entre os dois.
dll = Win32API.new("MathTestDLL.dll", "Add", "LL", "L")
msgbox dll.call(10, 20)
Teste esses comandos no maker é você verá que irá retornar a 30.
Conclusão:
Para finalizarmos recomendo que vocês criem e modifiquem novas funções para treinar melhor!