Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Tutorial]Criando e usando uma DLL
+5
Alexandre Dias
LCS
Luca$
Markituh
Jiraya
9 participantes
Página 1 de 1
[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
altera este código
para esse
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 teremos que fazer com que a funçao seja executada
digite o seguinte código na area
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]
crie outro script e de o nome de DllSoma e digite o seguinte código
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
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_ */
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;
}
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 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;
}
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
*/
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
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
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 15 Dez 2010, 20:44, 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
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
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
Luca$- Games Ranking :
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Reputação : 1
Número de Mensagens : 582
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
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- Data de inscrição : 13/10/2010
Reputação : 8
Número de Mensagens : 397
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 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
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
Sim. External define é o que define as funções da DLLSalathiel (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?
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
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
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
Kapoty- Games Ranking :
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
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 +
Tópicos semelhantes
» Path - Criando e Usando
» Criando um desisntalador no windows usando .cmd V1.1
» Duvida: Criando movimento de senoide via alarm usando GML
» [Tutorial] Usando MOD e DIV
» Tutorial: usando a dll gmFTP
» Criando um desisntalador no windows usando .cmd V1.1
» Duvida: Criando movimento de senoide via alarm usando GML
» [Tutorial] Usando MOD e DIV
» Tutorial: usando a dll gmFTP
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos