Login

Esqueci minha senha

Últimos assuntos
» [DÚVIDA] Sprite que fica sempre no final do texto
por Limalokão Hoje à(s) 22:37

» Testar ping(em ms) pra qualquer ip digitado igual
por Gonzo Hoje à(s) 21:42

» Movimento do cano do Tank!!
por Zero. Hoje à(s) 21:29

» Uma mensagem aos participantes do CM#02
por polosam Hoje à(s) 18:59

» Problemas com sprite offset e lengthdir !!
por ChicoGamer Hoje à(s) 17:40

» Duvida Simples
por aminaro Hoje à(s) 17:38

» Mapa do universo
por Isaque Onix Hoje à(s) 14:03

» Meu Mapa
por Isaque Onix Hoje à(s) 12:01

» [CM#2] Kenium
por DR games Hoje à(s) 10:52

» Crio Trilha Sonora para Games!
por itarodrigo Hoje à(s) 10:17

» [Alpha] Magic Royale
por theguitarmester Hoje à(s) 09:36

» [CM#2] Hunter of Souls
por seymore Ontem à(s) 22:49

» Spyre
por Isaque Onix Ontem à(s) 22:01

» Windows Phone vs Android, Vale a Pena Desenvolver?
por willyruduit Ontem à(s) 19:30

» sonic slash smash!preciso de sugestões
por Um Gamer Qualquer Ontem à(s) 18:48

» Open Game Art - Convite
por Lukbebalduke Ontem à(s) 16:18

» Preciso de dicas sobre sonoplastia.
por Mateus O de Andrade Ontem à(s) 15:34

» [Duvida] Resoluções android
por aminaro Qua 22 Abr 2015, 23:42

» Iniciar Determinada Aplicação
por Gonzo Qua 22 Abr 2015, 23:08

» Sonic World 2
por Um Gamer Qualquer Qua 22 Abr 2015, 21:39

» Como deixar a room preta e branca?
por Markituh Qua 22 Abr 2015, 21:39

» E permitido isso?
por Markituh Qua 22 Abr 2015, 20:33

» Ajuda com potion em pixelArt
por chicoweb Ter 21 Abr 2015, 23:24

» Problemas na compilação
por Meokor Ter 21 Abr 2015, 13:16

» Alternativa para Mesa Digitalizadora?
por polosam Ter 21 Abr 2015, 10:54

» Video Aula de Pixelart
por Isaque Onix Seg 20 Abr 2015, 22:03

» Preciso de um Artista
por seymore Seg 20 Abr 2015, 20:25

» Artigo|Discussão - Programação Orientada a Eventos
por Kabeção Seg 20 Abr 2015, 20:14

» Trap For Ants [#LD32]
por WellingtonBecker Seg 20 Abr 2015, 19:39

» Carrot Bender [#LD32]
por paulovmdutra Seg 20 Abr 2015, 15:29

» [Arte]Avaliem esse Esboço
por LightVelox Seg 20 Abr 2015, 15:28

» Formação de uma Equipe
por itarodrigo Seg 20 Abr 2015, 07:40

» Tarsonic, o ouriço das selvas
por efraim leonardo Dom 19 Abr 2015, 15:34

» [Duvida]Preciso de conselhos de voces
por Rodrigo Santiago Dom 19 Abr 2015, 07:06

» Criar mapa de imagem para seleção de fases
por Isaque Onix Dom 19 Abr 2015, 01:47

» [Concurso Mensal #02] - Prêmio de R$ 200 na Steam
por WellingtonBecker Sab 18 Abr 2015, 21:41

» [Resolvido]Objeto não pisca
por Limalokão Sab 18 Abr 2015, 20:51

» [Resolvido]GMS - Android imagem mega comprimida
por Gonzo Sex 17 Abr 2015, 23:31

» De volta
por JoaoVanBlizzard Sex 17 Abr 2015, 20:55

» Como programar um tiro especifico
por Markituh Sex 17 Abr 2015, 18:57

» [Concurso Mensal #01]-Resultados
por Markituh Sex 17 Abr 2015, 13:25

» IA - Desviar/Bloquear Projéteis
por matheusco Sex 17 Abr 2015, 13:04

» Hero (Projeto)
por willyruduit Sex 17 Abr 2015, 09:17

» [T.P]360 - Plataforma 2
por Rodrigo Santiago Qui 16 Abr 2015, 22:07

» [Resolvido][BUG?]Left Mouse Released
por Limalokão Qui 16 Abr 2015, 19:48

» [Concurso] Ludum Dare #32
por Lukbebalduke Qui 16 Abr 2015, 17:39

» [CM#1] Rest in Pixels 0.92 - 3D
por Lighter Qui 16 Abr 2015, 15:30

» Como salvar physics joints?
por alexfuziokaandrade7 Qui 16 Abr 2015, 09:29

» Novamente, problemas na view
por saim Qui 16 Abr 2015, 06:44

» [Resolvido] bug atravessando parede e voando
por kradking Qua 15 Abr 2015, 22:09

» [Resolvido] Dúvida com with
por seymore Qua 15 Abr 2015, 21:36

» [Off Topic] Pérolas GMBR
por polosam Qua 15 Abr 2015, 19:20

» Como fazer gravidade em plataforma sem Solid
por willyruduit Qua 15 Abr 2015, 09:50

» código repetindo sem parar
por OliVroot Qua 15 Abr 2015, 05:23

» [HELP] - Multi touch
por Markituh Qua 15 Abr 2015, 03:11

» movimentar objeto para cima com o clique do mouse
por Limalokão Qua 15 Abr 2015, 00:28

» Plataforma atravessavel - Estilo Mario
por katisuke Ter 14 Abr 2015, 22:51

» [Tuto]Instalando e configurando o android para gms
por willcraft2 Ter 14 Abr 2015, 21:00

» Como fazer uma mensagem simples (draw~~print)
por Limalokão Ter 14 Abr 2015, 18:59

» Criar "Highscore" no game maker studio
por marcossfc Ter 14 Abr 2015, 18:04

» Detectar direção mouse/touch com precisão
por dangelobr Ter 14 Abr 2015, 14:18

» Delay em audio
por luan.alc Seg 13 Abr 2015, 23:14

» Exibir banner na tela inteira - android
por Gonzo Seg 13 Abr 2015, 23:13

» configurar o gmstudio exportar para android
por itarodrigo Seg 13 Abr 2015, 22:44

» Formando equipe fixa!!
por Frederico Seg 13 Abr 2015, 15:13

» [Resolvido]Como fazer objeto que cai quando player ta em baix
por Isquilo_Roedor Seg 13 Abr 2015, 12:49

» GMS: Seu jogo MULTI-RESOLUÇÃO
por luan.alc Seg 13 Abr 2015, 11:59

» Equipe casual
por Fuzenrad Seg 13 Abr 2015, 08:35

» [RESOLVIDO] Descer rampas
por fernando.munizerthal Seg 13 Abr 2015, 01:23

» [FANGAME INCONPLETO] Sonic Puzzle S
por ExTAH Dom 12 Abr 2015, 20:18

» Lista de sites com Efeitos Sonoros
por joas025 Dom 12 Abr 2015, 15:12

» Procura-se programador
por scratchware_dev Dom 12 Abr 2015, 08:40

» [Resolvido] Ctrl+Tab não funciona mais
por Zero. Dom 12 Abr 2015, 01:56

» That Game Doesn't Make Any Sense!
por polosam Sab 11 Abr 2015, 22:40

» Midtown Jumper
por DooMan Sab 11 Abr 2015, 22:09

» Como evitar que o jogo Pause ao ser minimizado
por Fuzenrad Sab 11 Abr 2015, 20:10

» Device_mouse e colisão
por itarodrigo Sab 11 Abr 2015, 19:20

» Reunindo equipe para jogo de luta.
por Nivaldo2000 Sab 11 Abr 2015, 12:43

» é possível fazer um jogo parecido com Brawl Royale
por Zero. Sab 11 Abr 2015, 09:20

» Zombies - Elimination
por Vikintor Sex 10 Abr 2015, 23:11

» esconder barra de navegação - android
por Gonzo Sex 10 Abr 2015, 17:07

» Sobre Isometria
por itarodrigo Sex 10 Abr 2015, 11:03

» Como simular uma partida de futebol
por felipejoys Qui 09 Abr 2015, 21:03

» Personagem
por Isaque Onix Qui 09 Abr 2015, 18:55

» [Tutorial] Como definir Versões e Updates do Jogo
por dharrison Qui 09 Abr 2015, 18:25

» ajuda com jogo estilo mario
por paulovmdutra Qui 09 Abr 2015, 17:36

» Exemplos de Jogos - Estilo Browser
por matheusco Qui 09 Abr 2015, 14:03

» Usando desenhos feitos à mão.
por matheusco Qui 09 Abr 2015, 11:31

» [Engine] Menu para softwares
por UrielAlves Qua 08 Abr 2015, 23:45

» [CM#01] I Wanna Be The Bean
por Limalokão Qua 08 Abr 2015, 20:14

» Obter trofeus no game jolt
por jose rocha Qua 08 Abr 2015, 17:20

» erro android
por Isaque Onix Qua 08 Abr 2015, 14:49

» Artista precisa de ajuda em programação
por player9 Qua 08 Abr 2015, 14:17

» Mega Surpresinha - android
por Gonzo Qua 08 Abr 2015, 13:17

» juntar 2 ou mais objetos durante o jogo
por dangelobr Qua 08 Abr 2015, 12:07

» ArcOS
por Fuzenrad Qua 08 Abr 2015, 01:07

» Facebook e suas dificuldades do inferno
por itarodrigo Ter 07 Abr 2015, 17:58

» [Open Source] Yunitto-615
por Fuzenrad Ter 07 Abr 2015, 14:24

» [CM#01] Jelly Quest (BETA)
por JoaoVanBlizzard Ter 07 Abr 2015, 13:08


[Tutorial]Criando e usando uma DLL548

[Tutorial]Criando e usando uma DLL

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade [Tutorial]Criando e usando uma DLL

Mensagem por Jiraya em Qua 15 Dez 2010, 19:14

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

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 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

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 Very Happy
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)

Jiraya

Ranking: Nota A
Número de Mensagens: 1134
Data de inscrição: 20/03/2010
Notas recebidas: A+A
Reputação: 107
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Markituh em Qua 15 Dez 2010, 20:02

Pequeno? Que é isso, cara! Tá grande Very Happy 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 Happy

___________

"Não deixe para amanhã o que se pode fazer hoje"

Markituh

Ranking: Sem avaliações
Número de Mensagens: 2124
Data de inscrição: 11/10/2009
Reputação: 96
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Luca$ em Qua 15 Dez 2010, 20:34

Legal cara
Eu nao fiz
pq nao tenho o dev-c++
mas se tivesse eu concerteza fazeria seu tuto =D

Luca$

Ranking: Nota D
Número de Mensagens: 582
Data de inscrição: 10/10/2010
Notas recebidas: D-C
Reputação: 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por LCS em Qua 15 Dez 2010, 20:44

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

LCS

Ranking: Nota A
Número de Mensagens: 1035
Idade: 19
Data de inscrição: 09/03/2010
Notas recebidas: A
Reputação: 43
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://www.www.ww.www

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Alexandre Dias em Qua 15 Dez 2010, 20:53

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

Alexandre Dias

Número de Mensagens: 397
Idade: 20
Data de inscrição: 13/10/2010
Reputação: 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Jiraya em Qua 15 Dez 2010, 21:17

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!

Jiraya

Ranking: Nota A
Número de Mensagens: 1134
Data de inscrição: 20/03/2010
Notas recebidas: A+A
Reputação: 107
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por bill gates Zona sul em Qui 16 Dez 2010, 03:45

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

bill gates Zona sul

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

http://www.tiagoguitarra.blogspot.com

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Salathiel em Qui 16 Dez 2010, 11:01

Parabéns cara, muito legal mesmo.
Pergunta:
Sempre que for fazer uma dll tem que usar external_define no gm?

Salathiel

Número de Mensagens: 346
Idade: 18
Data de inscrição: 29/05/2010
Reputação: 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://salathiel1337.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Markituh em Qui 16 Dez 2010, 11:11

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

___________

"Não deixe para amanhã o que se pode fazer hoje"

Markituh

Ranking: Sem avaliações
Número de Mensagens: 2124
Data de inscrição: 11/10/2009
Reputação: 96
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Isaque Onix em Seg 30 Jul 2012, 18:06

aaah com o delphi7 é td diferente :'(

Bom tuto mano, pena q num deu aki

Isaque Onix

Número de Mensagens: 1496
Idade: 21
Data de inscrição: 15/08/2010
Reputação: 140
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Kapoty em Seg 30 Jul 2012, 18:41

Uma pergunta :

Como faço para retornar uma string? tal como "Pontos = "+x

Kapoty

Ranking: Nota B
Número de Mensagens: 635
Data de inscrição: 05/11/2011
Notas recebidas: E + D + C + B + D +B + A
Reputação: 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Jiraya em Seg 30 Jul 2012, 19:14

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());
}


Jiraya

Ranking: Nota A
Número de Mensagens: 1134
Data de inscrição: 20/03/2010
Notas recebidas: A+A
Reputação: 107
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Qualidade Re: [Tutorial]Criando e usando uma DLL

Mensagem por Isaque Onix em Seg 30 Jul 2012, 20:14

Jiraya, vc tem outros posts e tutos sobre dlls? sou iniciante em delphi e gostaria de aprender +

Isaque Onix

Número de Mensagens: 1496
Idade: 21
Data de inscrição: 15/08/2010
Reputação: 140
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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