Bennu Game Development

Foros en Español => Extensiones => Topic started by: DCelso on September 30, 2009, 02:46:31 PM

Title: extensión dctools
Post by: DCelso on September 30, 2009, 02:46:31 PM
Hola a todos, he creado mi primer módulo para bennu después de muchos fracasos.
Lo he intentado hacer lo más simple posible para que sirva a modo didáctico.
Son un tanto en cuanto unas funciones un poco inútiles pero sencillas de entender:
un printf, fibonnaci, factorial, calculo de la letra del dni, inversión de derecha a izquierda de una cadena.

DLSYSFUNCS __bgdexport( mod_dctools, functions_exports) [] = {
{"DCPRINT", "S", TYPE_INT, moddctools_dcprint},
{"DCFIBONACCI", "I", TYPE_INT, moddctools_dcfibonacci},
{"DCFACTORIAL", "I", TYPE_INT, moddctools_dcfactorial},
{"DCLETRADNI", "S", TYPE_CHAR, moddctools_dcletradni},
{"DCMIRRORSTR", "S", TYPE_STRING, moddctools_dcmirrorstr},
{0, 0, 0, 0}
};

Espero que os sirva a todos para entrar en el mundillo de creación de módulos, la licencia es LGPL, podeis usarla tal cual os plazca :D.
Title: Re: extensión dctools
Post by: DCelso on September 30, 2009, 02:48:56 PM
Un ejemplo de uso sería el siguiente:

Program pruebadctools;

import "mod_video"
import "mod_key"
import "mod_draw"
import "mod_proc"
import "mod_map"
import "mod_screen"
import "mod_time"
import "mod_text"
import "mod_dctools"

Global
profundidad = 32;
FPSteoriocos = 30;
ancho = 800;
alto = 600;
resultado[10];
char letra;
string cadena_ret;
Begin
set_mode(ancho,alto,profundidad);
set_fps(FPSteoriocos,0);
    put_screen(0,load_png("recursos/despegue.png"));
    resultado[0]=dcprint("hola mundo");
    resultado[1]=dcfibonacci(8);
    resultado[2]=dcfactorial(4);
    letra = dcletradni("75030555");
    cadena_ret = dcmirrorStr("hola mundo");
    write_var(0,50,20,0,resultado[0]);
    write_var(0,100,20,0,resultado[1]);
    write_var(0,150,20,0,resultado[2]);
    write_var(0,200,20,0,letra);
    write_var(0,300,20,0,cadena_ret);
    while (!key(_esc))
        if (key(_f))
            full_screen = !full_screen;
            set_mode(ancho,alto,profundidad);
        end
        frame;
end
let_me_alone();
end


Title: Re: extensión dctools
Post by: osk on September 30, 2009, 04:49:41 PM
¡Muchísimas gracias!
¡Es justo lo que estaba intentando hacer yo para mi manual!
Title: Re: extensión dctools
Post by: splinter_work on September 30, 2009, 06:16:36 PM
:D

jejeje, me alegra mucho DCelso, felicitaciones y gracias por el ejemplo... podrias armar un minituto, no estaria mal para otros que se inician... ya que lo estas viendo desde el punto de vista de un usuario que hace su primer modulo, nada mejor que eso...

gracias nuevamente...

te estas llevando muchos karmas... ;)
Title: Re: extensión dctools
Post by: DCelso on September 30, 2009, 06:33:43 PM
Pues la verdad es que como es tan básico, por sí solo se entiende, no sabría por donde empezar el minitutorial, soy muy malo enseñando :(, en serio. Lo mío es aprender :D.
Esperemos a que lo monte osk y lo criticamos, que eso se me da mejor :D juasjuasjau.
Por cierto osk, me alegra leerte, aún más cuando dices que sigues con el manual. Lo di ya por perdido :D.

A ver, como datos adicionales, el adjunto viene con un Makefile que enseña las reglas para generar el obj y el exe final con los flags necesarios para que gcc funcione bien.
También adjunté los archivos del projecto en eclipse(qué haría yo sin este gran IDE  ::)) para poder abrirlo desde éste.
Por cierto, necesitas tener instalado mingw y zlib-dev. No pude quitar la dependencia de zlib, aunque no la use me la pide por culpa de los headers que me copié del SVN de bennu. Tendría que dedicarle un poco más de tiempo para eliminar esta dependencia. Quizás como paso intermedio debería de meter en el ejemplo los headers de zlib y el dll necesario para eliminar la dependencia de tener instalado zlib-dev.
Title: Re: extensión dctools
Post by: Drumpi on September 30, 2009, 06:50:41 PM
Mola, yo también tengo que aprender a hacer módulos, así que espero también que se haga un tutorial. Si no sabes por dónde empezar, podrías intentarlo con lo necesario para desarrollar dlls. Había un pequeño tuto por ahi para hacer dlls en Fenix, lo puedes tomar como ejemplo.
Como incentivo, karma++.
Title: Re: extensión dctools
Post by: osk on September 30, 2009, 10:07:25 PM
Sí...estoy acabando ya el manual...se me está haciendo un poco pesado pero creo que me está quedando bien. Espero que para la semana que viene ya lo tenga (casi) listo.

Precisamente tenía pensado hacer un minituto de hacer módulos, y cogeré el ejemplo tuyo como demostración práctica. Ya avanzo de que yo no soy ningún especialista y lo que he ido probando lo he hecho a base de prueba y error...así que no será muy técnico ni riguroso: está escrito por un usuario "de a pie" a otro usuario "de a pie". Y he utilizado el CodeBlocks, ya que es muy intuitivo y es multiplataforma.

Venga, hasta luego
Title: Re: extensión dctools
Post by: DCelso on September 30, 2009, 10:24:25 PM
Ok, lo esperamos con los brazos abiertos muchos de nosotros. :D
Por cierto, faltaría añadirle algo más de complejidad, como crear nuevas variables globales dentro de nuestro módulo o usar funciones de otros módulos, pero eso no lo hice aún, tendré que investigar y probar más.
Title: Re: extensión dctools
Post by: Prg on September 30, 2009, 11:46:00 PM
yo tambié quiero aprender a hacer módulos, je je, ya lo descargué, a ver si luego lo miro con detenimiento :)
gracias y karma ++ :)
Title: Re: extensión dctools
Post by: Windgate on October 01, 2009, 07:27:07 AM
Repito todo lo que se ha dicho ya, era algo que llevaba 65 millones de años esperando, karma++
Title: Re: extensión dctools
Post by: Windgate on October 14, 2009, 05:54:10 AM
He mirado a fondo tu ejemplo, a primera vista parece sencillo, aunque veo unos parámetros INSTANCE * my que me resultan sospechosos ¬¬

También alguna cosa más que no termina de convencerme del todo, como la redeclaración de alguna cabecera de función y la presencia de 2 cabeceras distintas para cada función, aunque esto último supongo que serán respectivamente la cabecera para ese 'C' en el que se escriben las DLL y la cabecera que luego será utilizable (o interfaceable) desde Bennu.

Ahora mismo estoy instalando el Eclipse para poder compilar y probar a fondo todo, aunque ya te aviso que yo con Eclipse/Visual Studio/CodeBlocks me llevo faltal y siempre terminamos arrojándonos errores gratuitos, primero él a mí, pero luego yo a él :o

Gracias de nuevo DCelso, os mantendré informado sobre mis descubrimientos en el nuevo mundo de las DLL, cualquier consejo adicional bienvenido será.

EDIT: Cojones vaginales... La última vez me lo pasaron en un pen para hacer un trabajito y fue coser y cantar, pero ahora entro a eclipse.org y me ofrecen decenas de versiones, para Java, para C, de diferentes tamaños, para EE (Que no sé qué es ???). En resumen, ¿Qué versión de Eclipse me recomiendas para meterme en este corral? Si además me ofrece soporte para Java y C++ mejor.
Title: Re: extensión dctools
Post by: DCelso on October 14, 2009, 08:21:57 AM
EE, Enterprise Edition: es para hace programas tipo WAMP (windows apache mysql php) de forma profesional (generalmente se usa a nivel empresarial WAOJ o UAOJ, Windows/Unix Apache Oracle JAVA), básicamente son páginas web dinámicas de gestión de datos a través de ataque a un servidor de Base de Datos.
Yo tengo instalada esa versión a la que le he añadido C++ y Perl, ahí a tope con todo a la vez y porque no existe. Yo quizas te recomendaría que tengas varios eclipses distintos, uno para JAVA y otro para C++, para no liar mucho la cosa, total hoy en día de espacio vamos sobrados :D.
Date cuenta que eclipse solo es el IDE (Integrated Development Environment), para C necesitas instalar un compilador externo como GCC (Mingw32 o Cygwin te valdrán)
Para JAVA necesitarás, almenos el JRE, (Runtime envirotment), pero Te recomendaría el JDK (Development Kit) ya que trae el código fuente de JAVA y los documentos de ayuda y muchas veces te servirán para conocer un poco como usar los métodos de una clase o las propiedades que te ofrecen.

PD: toma castaña pilonga de siglas :D.
Title: Re: extensión dctools
Post by: blostec on October 14, 2009, 07:39:31 PM
Se me había pasado por alto este tema, ahora la bajo a ver que tal esta. Saludos DCelso!
Title: Re: extensión dctools
Post by: Windgate on October 14, 2009, 08:34:54 PM
Yo ahora estoy instalando el Eclipse para C++, miedo me da :S

¿Sólo se pueden hacer DLLs con funciones programadas en C++? Quiero decir, ¿Sería posible meter en una DLL FUNCTIONS programadas con el propio Bennu?

Es que tengo algunos .prg de utilidad general que no me importaría tener en una DLL para no tocar ni ver más su código ya que las considero FERPECTAS!
Title: Re: extensión dctools
Post by: DCelso on October 14, 2009, 08:41:08 PM
Pues me parece que no se puede.
A ver podrías hacer bennu embebido en c pero eso no te convierte el dcb en dll, necesitarías las dos cosas, así que es mas rollo.
Title: Re: extensión dctools
Post by: splinter_work on October 15, 2009, 02:33:34 PM
aun no es posible... eso sera posible en una 1.5 o 2.0... pero no en una 1.0... por lo menos, no de momento...
Title: Re: extensión dctools
Post by: DCelso on December 25, 2009, 07:14:00 AM
windgate, quizas si lo haces un poco rebuscado puedas ahorrarte el tener que pasar el código fuente de tus funciones hechas en bennu.
Me explico
1- creas tus funciones en bennu (Llamemosle "funciones BENNU")
2- creas los o el dcb correspondiente.
3- creas un dll en c en el que cargas el "dcb" y a cada "función BENNU" le asignas una funcion en código c (Llamemosle "funciones C"), ahora creas unas funciones  "wrapper" en C que sean las que usan la estructura necesaria para que pueda usarla Bennu, y estas dentro llamen a las "funciones C".

Mareas un poco la perdiz pero al final obtienes un dcb y dll que compondrán tu librería "binaria" sin códigos fuente de por medio :D.

Otra opción seria que splinter programara funciones en bennu que sean capaces de abrir "dcbs" y asignarlas a funciones nuevas de bennu. Algo así como Bennu embebido en Bennu :D. Te ahorrarías el .dll en diferencia al método anterior.
Title: Re: extensión dctools
Post by: Windgate on December 25, 2009, 01:16:08 PM
Suena bien DCelso... Entiendo lo que dices, con lo de las wrapper supongo que te refieres a esas cabeceras que hay siempre en los fuentes de las dll y tienen la misma forma y sirven para indicar como se llamaran desde Bennu.

Lo probare un dia de estos, ya consegui recompilar la libreria de redes de Sandman hace poco.

En cuanto a "cargar el dcb en C" eso ya me suena mas chungo :S ,¿A que te refieres exactamente?, ¿Cargar con include o como fichero con fopen?

Si es que con las dll estamos muchos de nosotros todavia locos :(
Title: Re: extensión dctools
Post by: grisendo on January 04, 2010, 01:01:48 AM
¿Os funciona a todo el mundo? Yo lo estoy tomando de ejemplo para eliminar cosas
que me sobran y para intentar ver por qué me da error lo de las cadenas...
Compila bien y todo pero al ejecutar me da este error:

[code language="text"]
Assertion failed: code < string_allocated && code >= 0, file strings.c, line 264

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Presione una tecla para continuar . . .
[/code]

He visto por el foro que a alguien le pasó algo parecido, y se habla de que puede
ser versiones diferentes de Bennu, ¿Es cierto? ¿Cuál se necesita?
Title: Re: extensión dctools
Post by: SplinterGU on January 04, 2010, 03:02:01 AM
no habras compilado con los fuentes del core directamente al .c?

hay que usar la bgdrtm.dll, no sus fuentes...
Title: Re: extensión dctools
Post by: grisendo on January 04, 2010, 04:42:30 PM
Pues yo creo que no... de todas formas para asegurarme he limpiado un montón de includes
y librerías que había pero que no se utilizaban (empezando desde cero y añadiendo poco a poco),
y me queda esto en mi proyecto:

Includes:
    + opencv
        - cv.h
        - cvver.h
        - cxcore.h
        - cxerror.h
        - cxtypes.h
        - highgui.h
        - cvtypes.h
        - cvcompat.h
    + bennu
        - bgdcore.h
        - bgddl.h
        - commons_defs.h
        - i_prcdef_st.h
        - instance.h
        - instance_st.h
        - sysprocs_st.h
        - typedef_st.h
        - xstrings.h
        + libgrbase
            - g_bitmap.h
            - g_blendop.h
            - g_clear.h
            - g_conversion.h
            - g_grlib.h
            - g_pal.h
            - g_region.h
            - libgrbase.h

Linkers:
    + opencv
        - cv.lib
        - cxcore.lib
        - highgui.lib
    + bennu
        - libbgdrtm.dll
        + libgrbase
            - libgrbase.dll
            - liblit.dll


Luego en el código incluyo (con #include) estos:
    - bgddl.h
    - libgrbase.h
    - cv.h
    - highgui.h
    - xstrings.h

No sé si es a lo que te referías...
Pero me sigue tirando error al ejecutar el jodido...
Title: Re: extensión dctools
Post by: grisendo on January 04, 2010, 05:33:01 PM
He mirado el código fuente de la función string_get(int code) y se comprueba
la condición que dice el error:
code < string_allocated && code >= 0

Vamos, que la función únicamente accede a un vector de 0 a string_allocated-1,
que contiene las cadenas del programa, y esa condición está para que no se salga de rango.

Así que he forzado code a 0 llamando a string_get(0) en lugar de string_get(params[0]),
con lo que se cumple que code es >= 0: entonces string_allocated debe ser <= 0.

Ahora, hay otra función por ahí llamada string_init(), que reserva memoria
y pone el valor de string_allocated a 4096, no? Pues la he llamado justo
antes del string_get() y ahora ya no tira el error (aunque evidentemente
la cadena que obtengo es basura).

¿Dónde y cuándo debería llamarse a esa funcion string_init()? Para mí que lo debería
hacer el propio intérprete, pero por alguna razón no lo hace... o si! porque justo antes
en bennu he llamado a un load_fpg() y a un say() y que usan funciones de string y
funcionan!! Vaya lío...
Title: Re: extensión dctools
Post by: SplinterGU on January 04, 2010, 10:10:46 PM
nunca deberias llamar a la funcion string_init, a menos que seas el bgdi....

seguramente no estaras haciendo todos los string_discard o string_use correctos... o quizas no tienes bien declarados los argumentos de tu funcion nueva que has agregado...
Title: Re: extensión dctools
Post by: SplinterGU on January 04, 2010, 10:17:24 PM
Con el codigo quizas pueda ayudarte un poco mas...
Title: Re: extensión dctools
Post by: grisendo on January 04, 2010, 11:21:32 PM
Claro, sí... ahí va el código:

http://www.grisendo.com/subidas/codigo.rar

Yo es que ya no sé qué le pasa... desde que empecé
con esto me da ese error y no ha habido forma...
También he puesto el proyecto para Code::blocks
por si lo tenéis y veis que tengo alguna cosa mal
configurada del proyecto.
Title: Re: extensión dctools
Post by: DCelso on January 07, 2010, 04:34:46 AM
A mi me pasó algo parecido al empezar a compilar.
Si no recuerdo mal es por usar un libbgdrtm.dll antiguo.

De todas formas, incluí un makefile para poder compilarlo con un entorno gcc cualquiera. El codigo fuente no necesita de códigos fuentes externos ni librería externas que no estén incluidos/as en el zip. simplemente haciendo "make all" en un entorno "gcc" debería generarse el .dll de mod_dctools.

O bien, mira otra cosa, el proyecto está para eclipse/cdt + mingw, así que te recomendaría que te crearas este entorno e intentaras compilarlo con éste, a ver si así no da el error, luego si ves que funciona, puedes ir examinando las propiedades del proyecto para ver que hay que poner en codeblocks para hacer lo mismo.
También, al compilar con eclipse verás en una ventana un log los comandos gcc ejecutados por éste, así que puedes copiartelos y examinarlos para ver que parámetros necesistas configurar en codeblocks para que ejecute los mismos comandos.

Title: Re: extensión dctools
Post by: grisendo on January 07, 2010, 09:16:23 AM
Luego pruebo

De todas formas, karma++, porque gracias a esto ya he conseguido
quitar toda la furrufalla que tenía y no entendía de exports y cosas
así en mi librería :D

De todas formas, ¿Se pueden exportar tipos de datos y constantes?
Estaría bien a modo de ejemplo añadirle al ejemplo de DLL alguna
constante como pi o avogadro para aprender cómo se hace, y algún
tipo de dato sencillo tipo número complejo (todo esto si se puede,
claro)
Title: Re: extensión dctools
Post by: Windgate on January 07, 2010, 01:35:38 PM
mod_scroll define un vector de estructuras GLOBAL, así que supongo que sí que se podrán exportar "variables".

En cuanto a tipos, Bennu3D exporta _pos3d _line3d y algunos más, no son más que estructuras, pero weno.

Personalmente no sabría hacerlo, pero estos ojitos lo han visto por ahí ::)
Title: Re: extensión dctools
Post by: grisendo on January 07, 2010, 05:14:54 PM
Ok, le echaré un vistazo al código fuente de ambos. En algunos ejemplos
de DLL se llaman a instrucciones "raras" que tiene la palabra EXPORT y
pone cosas como GLOBAL y CONST y tal... cosas que no entendí en su
momento. Así que me imagino que sí que se puede.

He utilizado el Makefile para compilar el mod_dctools,
pero sigue pasando lo mismo (el mismo maldito error de siempre).
Las instrucciones han sido estas:

gcc  -DSTDC_HEADERS -I./includes -O3 -c -o mod_dctools.o mod_dctools.c
gcc -L./lib -shared -o mod_dctools.dll mod_dctools.o -lz -lbgdrtm

De todas formas en la segunda instrucción se intenta enlazar una librería
que no está en tu ZIP ni tenía yo en mi sistema. Me la he bajado (aunque
creo que no vale para nada, porque da lo mismo quitar el -lz del comando
sin tener el libz.dll que incluirlo)

El libbgdrtm.dll que uso para linkar y para ejecutar juegos bennu no sé qué
versión es (en las propiedades sale vacío) pero las fechas son:
Creado: miércoles, 29 de julio de 2009, 0:57:34
Modificado: domingo, 22 de noviembre de 2009, 4:16:43

Pues eso, que no hay forma! Ahora me bajaré Eclipse y miraré el proyecto
a ver...
Title: Re: extensión dctools
Post by: grisendo on January 07, 2010, 05:37:41 PM
Ok, ya está (al menos el DCTools). Era cosa de versiones
de las DLL... Por lo visto tenía una orgía tremenda de
versiones distintas!!! He mandado todo a tomar por el
saco y me he bajado las últimas versiones :D y parece
que chuta! Ale, otra cosa menos ;) Gracias a todos!
Title: Re: extensión dctools
Post by: Windgate on January 07, 2010, 11:31:14 PM
Sube el .zip para estúpidos, con todo lo necesario para abrir el proyecto con Eclipse y que no se ponga tontorrón. Si lo haces confirma la versión de las .dlls que has usado... Yo ahora tiro de Bennupack 1.8

(Y mira si te sigue funcionando tu módulo VC con esas dlls... Yo con la ensalada de dlls que tuve hace poco no pude hacerlo chutar)

Good work ;D
Title: Re: extensión dctools
Post by: SplinterGU on January 07, 2010, 11:45:58 PM
Nunca uses -O3... lo maximo a usar es -O2... -O3 da problemas, no es algo 100% efectivo...

Quiitalo, pone -O2, eso puede dar muchos problemas...
Title: Re: extensión dctools
Post by: grisendo on January 07, 2010, 11:55:42 PM
Lo del O3 lo sabía de los ejemplos de fénix, pero como en el Makefile del
mod_dctools que ha subido DCelso lo usaba, pensaba que ya funcionaba
bien... ya lo cambiaré.

Y la versión de las librerías que me funciona es la RC112, no sabría decir
cuál tenía antes, las he mandado todas a tomar por el saco :D y el
ZIP de DCelso funciona 100% perfecto tal cual.

A mí me funciona también para mi DLL, lo que pasa que estoy cambiando las
funciones para que las salidas sean por parámetros, no returns, porque si se
hace con returns y no se va liberando memoria, el bgdi empieza a crecer y
crecer...
Title: Re: extensión dctools
Post by: Windgate on January 08, 2010, 09:04:29 AM
¿Qué es lo de -O2 y -O3? ¿Opciones para mejorar la eficiencia del binario? Supongo que es lo que tiene no tener aprobado compiladores xD
Title: Re: extensión dctools
Post by: grisendo on January 09, 2010, 12:43:11 AM
Exacto, optimizaciones de compilador en plan convertir: "x = y * 128" en "x = y << 7"
y todas esas cosas de desenrrollar bucles y renombrado de registros que nos "enseñan"
en arquitecturas y en compiladores.

Hala, se supone que O3 optimiza más que O2... pero no sé exactamente qué optimizaciones hace cada una.
Creo que sólo hacen optimizaciones generales, no para arquitecturas específicas... si tu arquitectura tiene
una instrucción única en el mundo que te multiplica en paralelo 512 matrices cuadradas complejas y te
friega los platos, compilando con O2 y O3 no la conseguirás obtener, tendrás que tener un compilador que
reconozca esas instrucciones y añadirle otro parámetro, normalmente -march, por ejemplo -march=athlon64
o -march=pentium4, que puede ser combinado también con O3. En el "build options" de codeblocks tienes
unos cuantos parámetros y sus significados.

Por cierto, ¿se puede utilizar -s (strip all symbols from binary)? No sé qué significa exactamente, pero
la DLL pasa de ocupar 600KB a ocupar menos de 10KB...
Title: Re: extensión dctools
Post by: Windgate on January 09, 2010, 02:42:50 PM
Supongo que eso último que dices hará uso del fuente de código para obtener los nombres de variables y funciones o algo así y tendrás que conservasrlo... Si no no tiene sentido que ocupe tan poco... ??? Personalmente no me da buen rollo xD
Title: Re: extensión dctools
Post by: SplinterGU on January 09, 2010, 02:52:58 PM
habia leido que -O3 da problemas porque no trabaja muy bien con las optimizaciones del procesador, en cuanto a ejecucion en paralelo, con el procesador matematico... o prediccion de saltos... o algo de ese estilo...

No recuerdo, hay que buscar, pero como sea, se desaconseja su uso.

Stripear los simbolos, si mal no recuerdo, las dlls fallan al cargar... pero no se, hay que probarlo nuevamente...
Title: Re: extensión dctools
Post by: josebita on January 09, 2010, 05:19:45 PM
Yo hago strip de mis librerías y funcionan sin problema, además reduce mucho el tamaño. Otra cosa es que para hacer debugging sea un lío.
Title: Re: extensión dctools
Post by: SplinterGU on January 09, 2010, 05:33:47 PM
me referia a windows...

cuando probe me fallo la carga de los simbolos en el core... pero bueno, quizas tenia alguna lib mal armada... pero si pueden probar me avisan...
Title: Re: extensión dctools
Post by: DCelso on November 30, 2010, 09:47:33 PM
Resubo ejemplo usando mi wrapper:
wrapper.zip (http://www.mediafire.com/?m33pa0dkpju1l71)
Como probarlo:
1.- Descomprimir
2.- Compilar libdctools:
  cd dctools
  make -f Makefile.linux
3.- Generar código fuente de mod_dctools.
  mod_dctools.sh
4.- Compilar mod_dctools
 make -f Makefile.linux.
Y ya está, en Release tendremos nuestro mod_dctools.so para usar en BennuGD.

Title: Re: extensión dctools
Post by: SplinterGU on November 30, 2010, 11:28:24 PM
muchas gracias DCelso!

Buen trabajo!
Title: Re: extensión dctools
Post by: FreeYourMind on December 01, 2010, 12:52:28 AM
Quien se ha comido los 2 posts anteriores !!??  >:(
Title: Re: extensión dctools
Post by: DCelso on December 01, 2010, 01:38:46 AM
no te referiás a los de la seccion herramientas wrapper?
Title: Re: extensión dctools
Post by: FreeYourMind on December 01, 2010, 10:12:13 AM
Pero no fue aqui que te comente lo de los includes y tu me respondiste ?