Login
Últimos assuntos
» Pedido de the sims 2dpor PeeWeeTM Hoje à(s) 10:00 pm
» [Dúvida]Comandos de grid
por Kyomaro Hoje à(s) 9:18 pm
» [Tutorial] Máquina de estados finitos
por anth201 Hoje à(s) 9:05 pm
» [Pergunta] GM:S no pendrive?
por snurfe Hoje à(s) 8:13 pm
» Problemas com jogo de nave
por Isaque Onix Hoje à(s) 8:12 pm
» A- KIIRO KURO - GARAGE VERSION
por PeeWeeTM Hoje à(s) 7:52 pm
» [GMK DISPONÍVEL]#CoJ - Complete o Jogo
por moisesBR Hoje à(s) 4:22 pm
» Pokémon - The Japan's legend
por Rodrigo Santiago Hoje à(s) 2:47 pm
» [pedido] idéias pra jogo educativo - medicamentos
por jenipher.cezarini Hoje à(s) 2:45 pm
» YoYo Games Win BIG Competition!
por jenipher.cezarini Hoje à(s) 2:27 pm
Facebook
ADS
ADS
[Tutorial]Criando e usando uma DLL
:: Aprendizagem :: Tutoriais
Página 1 de 1 • Compartilhe •
[Tutorial]Criando e usando uma DLL
AS seguintes ferramentas seram necessárias para concluir esse tutorial com exito!
voce precisara ter os seguintes programas
Game Maker Pro
Dev-C++
voce pode usar outras linguagens para criar sua dll tbm
como por exemplo
delphi,c++/c/Visual Basic ect...
mas neste caso iremos usar a linguagem de programação c++ acompanhado do software/IDE DEV-C++
============================INICIANDO=====================================
primeiro vamos criar a dll
abra o programa DEV-C++
clique em
Arquivo>>Novo>>Projeto
uma janelinha ira se abrir
como na imagem

clique no icone DLL e de um nome ao seu projeto, eu dei o nome ao meu de "MinhaDLL" :3
entao aparecera a janela para salvar o arquivo, como na imagem abaixo.

após isso aparecera no seu programa os seguintes códigos

altera ele em algumas partes, para que fique facil manipula-lo
deixe o código assim
ok, o arquivo Header ja esta pronto, agora precisamos preparar o arquivo .cpp, vai para a aba "[*] dllmain.cpp"

altera este código

para esse
pronto, a dll esta pronta começar!
vamos criar uma simples funçao agora
vá para a aba "[*] dll.h"
essa aba é onde vc declara a funçao

agora vamos criar a funçao digite isso na area
agora va para o arquivo "[*] dllmain.cpp"

agora teremos que fazer com que a funçao seja executada
digite o seguinte código na area
agora pressione F9 para testar o seu projeto!

se aparecer a seguinte mensagem

quer dizer que sua dll funcionou perfeitamente :D
agora vamos testa-la no game maker
finalmente \o/
===================AGORA NO GAME MAKER==============================
abra o game maker
salve o jogo na mesma pasta onde vc salvou a dll
e entao crie um script e de o nome de DLLInit e entao digite o seguinte codigo nesse script
[DLLInit]
ficara assim

crie outro script e de o nome de DllSoma e digite o seguinte código
ficara assim

QUASE LA :D
agora vamos testar para ver se esta funcionando
crie um objeto e de qualquer nome a ele
add o evento Create e arraste o d´n ´d Execute code

digite o seguinte código
crie uma room e coloque esse objeto na room
se aparecer uma mensagem mostrando o numero 16

PARABENS VOCE CONCLUIU O TUTORIAL COM EXITO!
a dll funcionou e agora voce tera portas abertas para criar outras dll
Download do Exemplo
====================OBRIGADO POR LEREM MEU PEQUENO PRIMEIRO TUTORIAL==================
voce precisara ter os seguintes programas
Game Maker Pro
Dev-C++
voce pode usar outras linguagens para criar sua dll tbm
como por exemplo
delphi,c++/c/Visual Basic ect...
mas neste caso iremos usar a linguagem de programação c++ acompanhado do software/IDE DEV-C++
============================INICIANDO=====================================
primeiro vamos criar a dll
abra o programa DEV-C++
clique em
Arquivo>>Novo>>Projeto
uma janelinha ira se abrir
como na imagem

clique no icone DLL e de um nome ao seu projeto, eu dei o nome ao meu de "MinhaDLL" :3
entao aparecera a janela para salvar o arquivo, como na imagem abaixo.

após isso aparecera no seu programa os seguintes códigos

altera ele em algumas partes, para que fique facil manipula-lo
deixe o código assim
- Código:
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define GML __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
//aqui vc colocara as suas funçoes ;]
#endif /* _DLL_H_ */
ok, o arquivo Header ja esta pronto, agora precisamos preparar o arquivo .cpp, vai para a aba "[*] dllmain.cpp"

altera este código

para esse
- Código:
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
//aqui é a area onde as funçoes ficaram
//====================================
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
pronto, a dll esta pronta começar!
vamos criar uma simples funçao agora
vá para a aba "[*] dll.h"
essa aba é onde vc declara a funçao

agora vamos criar a funçao digite isso na area
- Código:
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define GML __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
//aqui vc colocara as suas funçoes ;]
extern "C" GML double soma(double x,double y);//essa é a nossa funçao, agora ela esta declarada!
//double x e double y sao argumentos.
#endif /* _DLL_H_ */
agora va para o arquivo "[*] dllmain.cpp"

agora teremos que fazer com que a funçao seja executada
digite o seguinte código na area
- Código:
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
//aqui é a area onde as funçoes ficaram
extern "C" GML double soma(double x,double y)//essa é a função com os comandos dados.
{
return (x+y);
}
//====================================
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
agora pressione F9 para testar o seu projeto!

se aparecer a seguinte mensagem

quer dizer que sua dll funcionou perfeitamente :D
agora vamos testa-la no game maker
finalmente \o/===================AGORA NO GAME MAKER==============================
abra o game maker
salve o jogo na mesma pasta onde vc salvou a dll
e entao crie um script e de o nome de DLLInit e entao digite o seguinte codigo nesse script
[DLLInit]
- Código:
dll="MinhaDLL.dll";
global.SOMA=external_define(dll,"soma",dll_stdcall,ty_real,2,argument0,argument1);
/*
argument0=nome da dll
argument1=nome da funçao
argument2=tipo de resposta
argument3=tipo de retorno, se o valor da funçao retornara a string ou valor real.
argument4=numero de argumentos que a funçao tem
argument5=double x
argument6=double y
*/
ficara assim

crie outro script e de o nome de DllSoma e digite o seguinte código
- Código:
return (external_call(global.SOMA,argument0,argument1));//retorna ao resultado da funçao da dll
ficara assim

QUASE LA :D
agora vamos testar para ver se esta funcionando
crie um objeto e de qualquer nome a ele
add o evento Create e arraste o d´n ´d Execute code

digite o seguinte código
- Código:
DllInit();//inica a dll
soma=DllSoma(8,8);//executa a funçao da dll
show_message(soma);//mostra uma mensagem na tela com o valor do retorno da dll
crie uma room e coloque esse objeto na room
se aparecer uma mensagem mostrando o numero 16

PARABENS VOCE CONCLUIU O TUTORIAL COM EXITO!
a dll funcionou e agora voce tera portas abertas para criar outras dll
Download do Exemplo
====================OBRIGADO POR LEREM MEU PEQUENO PRIMEIRO TUTORIAL==================
Última edição por Jiraya em Qua Dez 15, 2010 7:44 pm, editado 1 vez(es)
Re: [Tutorial]Criando e usando uma DLL
Pequeno? Que é isso, cara! Tá grande
Eu já tinha visto sobre como fazer na Game Maker Comunnity, foi lá que aprendi a fazer minha primeira DLL =D Eu realmente prefiro o C++ para fazer, pois no Delphi é deveras complicado(que nada, eu que não sabia definir).
OFF: Cabei de sacar, o novo Rank entrou em vigor
OFF: Cabei de sacar, o novo Rank entrou em vigor

Re: [Tutorial]Criando e usando uma DLL
Legal cara
Eu nao fiz
pq nao tenho o dev-c++
mas se tivesse eu concerteza fazeria seu tuto =D
Eu nao fiz
pq nao tenho o dev-c++
mas se tivesse eu concerteza fazeria seu tuto =D
Re: [Tutorial]Criando e usando uma DLL
cara muito bom mesmo como sempre cada vez mais complicado kkkk
mas ta muito avançado pra mim
lol se isso é um tuto pequeno nem quero ver quando postar um grande
valeu orochi
continua sempre assim cara
10 pra tu
mas ta muito avançado pra mim
lol se isso é um tuto pequeno nem quero ver quando postar um grande
valeu orochi
continua sempre assim cara
10 pra tu
Re: [Tutorial]Criando e usando uma DLL
Tava com o zoom ligado aqui no linux e queria diminuir a letra. Cliquei no - . Só depois vi que implantaram sistema de reputação . Malz ae e___e
Enfim, por ter C++ envolvido, eu andei lendo os códigos. Pena que não foi possível prosseguir, li muito pouco sobre diretivas e as únicas que eu conheço são include e define. Ouvi dizer que sempre que puder evitar a define nos códigos é bom.
Uma vez estive compilando uma calculadora e tinha 2 defines para imprimir na tela pro usuário digitar um valor. Bugou o programa todo, tive que digitar manualmente e__e
Ps: Consertei minha burrada te dando crédito em outro post.
Ps2: Você podia fazer uns tutoriais de C++ pro fórum, é um dos melhores programadores daqui. =D
Enfim, por ter C++ envolvido, eu andei lendo os códigos. Pena que não foi possível prosseguir, li muito pouco sobre diretivas e as únicas que eu conheço são include e define. Ouvi dizer que sempre que puder evitar a define nos códigos é bom.
Uma vez estive compilando uma calculadora e tinha 2 defines para imprimir na tela pro usuário digitar um valor. Bugou o programa todo, tive que digitar manualmente e__e
Ps: Consertei minha burrada te dando crédito em outro post.
Ps2: Você podia fazer uns tutoriais de C++ pro fórum, é um dos melhores programadores daqui. =D

Alexandre Dias- Membro

- Alerta:




Número de Mensagens: 406
Idade: 18
Data de inscrição: 13/10/2010
Reputação: 8
Prêmios
: 0
: 0
: 0
Re: [Tutorial]Criando e usando uma DLL
Vlw Pessoal!
vlw Naz!
o define é como uma constant, por tanto nao pode ser alterada!
por isso nao se pode usar um define como variavel ;]
s, talves eu crie mais tutoriais sobre c++ aqui no forum!
vlw Naz!
o define é como uma constant, por tanto nao pode ser alterada!
por isso nao se pode usar um define como variavel ;]
s, talves eu crie mais tutoriais sobre c++ aqui no forum!
Re: [Tutorial]Criando e usando uma DLL
Jiraya adorei seu tutorial cara , eu estava querendo saber mesmo como criar uma dll , nossa foi d+ consegui fazer e deu certo aqui uahua !! , Jiraya da continuidade a essa materia cara , se possivel poderia dar um exemplo simples de dll de efeito sonoro tipo um delay ou algum outro efeito de som , vlw
10/10
www.trsflash.blogspot.com
10/10
www.trsflash.blogspot.com

bill gates Zona sul- Banido

- Alerta:




Número de Mensagens: 146
Data de inscrição: 02/02/2010
Reputação: -2
Prêmios
: 0
: 1
: 0

Re: [Tutorial]Criando e usando uma DLL
Parabéns cara, muito legal mesmo.
Pergunta:
Sempre que for fazer uma dll tem que usar external_define no gm?
Pergunta:
Sempre que for fazer uma dll tem que usar external_define no gm?
Re: [Tutorial]Criando e usando uma DLL
Salathiel (Qui Dez 16, 2010 11:01 am) escreveu:Parabéns cara, muito legal mesmo.
Pergunta:
Sempre que for fazer uma dll tem que usar external_define no gm?
Sim. External define é o que define as funções da DLL
Re: [Tutorial]Criando e usando uma DLL
aaah com o delphi7 é td diferente :'(
Bom tuto mano, pena q num deu aki
Bom tuto mano, pena q num deu aki

Isaque Onix- Membro

- Alerta:




Número de Mensagens: 537
Idade: 19
Data de inscrição: 15/08/2010
Versão:- Game Maker 8.0
Reputação: 19
Prêmios
: 0
: 0
: 0
Re: [Tutorial]Criando e usando uma DLL
Uma pergunta :
Como faço para retornar uma string? tal como "Pontos = "+x
Como faço para retornar uma string? tal como "Pontos = "+x
Re: [Tutorial]Criando e usando uma DLL
- Código:
extern "C" __declspec(dllexport) char* SITE()
{
return("Game Maker Brasil");
}
caso queira retornar a uma string como gml.
- Código:
#include <iostream>
#include <string>
#include <stringstream>
#include <cstring>
template<class T>
extern "C" __declspec(dllexport) char* SHOW_MESSAGE(T _val)
{
std::sstream _parse;
_parse<<_val;
return(_parse.str().c_str());
}
Re: [Tutorial]Criando e usando uma DLL
Jiraya, vc tem outros posts e tutos sobre dlls? sou iniciante em delphi e gostaria de aprender +

Isaque Onix- Membro

- Alerta:




Número de Mensagens: 537
Idade: 19
Data de inscrição: 15/08/2010
Versão:- Game Maker 8.0
Reputação: 19
Prêmios
: 0
: 0
: 0
Tópicos similares» [Tutorial] Usando o JFileChooser
» Criando sua Ficha
» Usando DIVs
» Criando uma pagina fake do zero!
» Criando um Servidor de GTA SA Multiplayer
» Criando sua Ficha
» Usando DIVs
» Criando uma pagina fake do zero!
» Criando um Servidor de GTA SA Multiplayer
:: Aprendizagem :: Tutoriais
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início










