Central Habbo Forum
Ainda não está Registrado ? , Então está esperando o que ? , Registre-se e disfrute do melhor do Fórum, se já for registrado, só faça o login

(Observações : Usuários não registrados não tem direitos a nenhum conteúdo)
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Conectar-se

Esqueci minha senha

Últimos assuntos
» gente o melhor habbo q existe
Seg Jan 30 2012, 12:27 por lucas-nobile@hotmail.com

» [Tutorial GameMaker] Variáveis
Sex Nov 18 2011, 09:12 por admin

» Survival of the Ball 1.0
Sex Out 07 2011, 00:54 por admin

» Criando Habbo Retro (Sem Hamachi)
Dom Set 11 2011, 13:54 por -Desconectado

» Como criar um habbo V65 com Bling + Valentim 2011 + Bola + Freeze e sem Bug
Dom Ago 28 2011, 15:46 por admin

» Master emulator 100% fixado r63.2
Ter Ago 23 2011, 19:52 por idiegofelicio

» Server Habbo Pirata com VIP Club e HC Club
Sab Ago 20 2011, 11:39 por admin

» Calculadoras no Delphi 7
Dom Ago 14 2011, 20:49 por ♥Giulia♥

» [TutorialGamemaker]Criando Jogo de plataforma simples
Qua Ago 10 2011, 13:05 por admin

Palavras chave

Flux RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Social bookmarking

Social bookmarking digg  Social bookmarking delicious  Social bookmarking reddit  Social bookmarking stumbleupon  Social bookmarking slashdot  Social bookmarking yahoo  Social bookmarking google  Social bookmarking blogmarks  Social bookmarking live      

Conservar e compartilhar o endereço de Central Habbo Forum em seu site de social bookmarking

Conservar e compartilhar o endereço de Central Habbo Forum em seu site de social bookmarking


[Game Maker]Criando e usando uma DLL

Ir em baixo

[Game Maker]Criando e usando uma DLL

Mensagem  admin em Sab Mar 05 2011, 14:52

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 Very Happy
abra o programa DEV-C++
clique em
Arquivo>>Novo>>Projeto
uma janelinha ira se abrir
como na imagem
[Você precisa estar registrado e conectado para ver esta 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.
[Você precisa estar registrado e conectado para ver esta imagem.]
após isso aparecera no seu programa os seguintes códigos
[Você precisa estar registrado e conectado para ver esta imagem.]
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"
[Você precisa estar registrado e conectado para ver esta imagem.]
altera este código
[Você precisa estar registrado e conectado para ver esta imagem.]
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
[Você precisa estar registrado e conectado para ver esta imagem.]
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"
[Você precisa estar registrado e conectado para ver esta imagem.]
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!
[Você precisa estar registrado e conectado para ver esta imagem.]
se aparecer a seguinte mensagem
[Você precisa estar registrado e conectado para ver esta imagem.]
quer dizer que sua dll funcionou perfeitamente :­D
agora vamos testa-la no game maker :gm8: 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
[Você precisa estar registrado e conectado para ver esta imagem.]
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
[Você precisa estar registrado e conectado para ver esta imagem.]

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
[Você precisa estar registrado e conectado para ver esta imagem.]
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
[Você precisa estar registrado e conectado para ver esta imagem.]
PARABENS VOCE CONCLUIU O TUTORIAL COM EXITO!
a dll funcionou e agora voce tera portas abertas para criar outras dll Very Happy
Download do Exemplo
====================OBRIGADO POR LEREM MEU PEQUENO PRIMEIRO TUTORIAL==================

Creditos:Jiraya (Tuto Retirado da GMBR Forum)

__________________________

Sou Fãn De:
[Você precisa estar registrado e conectado para ver esta imagem.]
avatar
admin
Administradores
Administradores

Mensagens Mensagens : 201
Pontos Pontos : 572
Reputação Reputação : 64
Data de inscrição Data de inscrição : 15/06/2010
Idade Idade : 23
Localização Localização : Curitiba-PR

Ver perfil do usuário http://centralhabbo.forumbrasil.net

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum