DLL desarrollo

Started by fulgorelizz, February 08, 2013, 01:11:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fulgorelizz

 :) buen dia chicos, he conseguido en los directorios de mi pc el DLL example y he notado que hay archivos .h y creo que uno .i y otro .o, seria bueno que se diera un tutorial de como desarrollar estos DLL a fin de mejorar los source de los existentes o de personalizarlos!! algo que queda muy claro, quien no maneje C mejor no lo intente xD pero yo quiero asumir el reto!!
Compiling code -- generating exe...

DCelso

te recomiendo que complies, veas funcionar y leas el código fuente de cualquiera de mis módulos, están detallados al dedillo :), y te servirían de muy buen tuto.
De todas formas te digo que básicamente crear un dll para bennu consiste en crear dos .c (o .cpp para c++) en el que:
* uno de ellos programs una .dll normal (librería de funciones, osea sin main) , creando su .dll y .h para usar en c normal de toda la vida...
* y otro  es un puente (wrapper) entre bennu y tu librería creada anteriormente, lo que se reduce en poner unas funciones ( en un formato predefinido por bennu para que sean válidas como módulos ) que llamen a las funciones que tienes en tu librería normal de c que creaste anteriormente.

Así de sencillo, por lo que el resultado final serían dos .dll, uno que es el libmod_loquesea.dll (wrapper) y otro libloquesea.dll (librería c de toda la vida)

si ya dispones de una .dll c a la que quieres dar soporte para bennu, entoces solo se reduce a crear el wrapper, y para ésto, crear el wrapper, como es una tarea muy sistemática y sujeta a automatización, pues yo creé un generador de wrappers en el que a partir de un archivo de configuración defines tus funciones y tipos de parámetros y te crea el  wrapper.c necesario para crear tu módulo bennu a partir de tu librería c de toda la vida. :)

Así que usando mi generador de wrappers reducirías la creación de módulos bennu, a creación de librerías .c, compliación de ésta, autogeneración del wrapper para ella y compilación de ella ;).

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

en su día, la compartí, pero parece ser que cayó en el olvido, no se ni si nadie la llegó a usar alguna vez porque nadie nunca me dijo nada ...,
Yo sí que la usé para mis módulos que compartí :D

http://forum.bennugd.org/index.php?topic=1213.15
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Quote from: DCelso on February 08, 2013, 04:39:49 PM
te recomiendo que complies, veas funcionar y leas el código fuente de cualquiera de mis módulos, están detallados al dedillo :), y te servirían de muy buen tuto.
De todas formas te digo que básicamente crear un dll para bennu consiste en crear dos .c (o .cpp para c++) en el que:
* uno de ellos programs una .dll normal (librería de funciones, osea sin main) , creando su .dll y .h para usar en c normal de toda la vida...
* y otro  es un puente (wrapper) entre bennu y tu librería creada anteriormente, lo que se reduce en poner unas funciones ( en un formato predefinido por bennu para que sean válidas como módulos ) que llamen a las funciones que tienes en tu librería normal de c que creaste anteriormente.

Así de sencillo, por lo que el resultado final serían dos .dll, uno que es el libmod_loquesea.dll (wrapper) y otro libloquesea.dll (librería c de toda la vida)

si ya dispones de una .dll c a la que quieres dar soporte para bennu, entoces solo se reduce a crear el wrapper, y para ésto, crear el wrapper, como es una tarea muy sistemática y sujeta a automatización, pues yo creé un generador de wrappers en el que a partir de un archivo de configuración defines tus funciones y tipos de parámetros y te crea el  wrapper.c necesario para crear tu módulo bennu a partir de tu librería c de toda la vida. :)

Así que usando mi generador de wrappers reducirías la creación de módulos bennu, a creación de librerías .c, compliación de ésta, autogeneración del wrapper para ella y compilación de ella ;).



podes tambien obviar la parte de la lib y hacer solo el modulo o tambien obviar la parte del modulo y hacer solo una lib, depende de lo que quieras hacer y lo que quieras dejar visible.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

fulgorelizz

aun me leo los codigos!! son muchos archivos .h y .c pero eso es resultado de una buena programacion!! en la medida que conozca el comportamiento de los archivos se me hara mas facil localizar lo que quiero, en este caso ando buscando scale_mode, leer como se comporta para crear una libreria para ANTIALIASING_MODE en los que primero validaria un acelerador 3D para correr la libreria y posteriormente unos filtros antialiasing que se ejecutaria sobre la pantalla que se dibuja al final en bennu, splinter me dijo que eso seria dificil y eso me pone los pelos de puntas!! jaja pero echare un ojo hasta dar con el punto, de verlo con tiempo de pruebas podria lograr algo interesante, quiero que ojeen world of goo, hay otros juegos que por ahora no recuerdo que aplican el metodo antialiasing en pantalla, y el juego se ve muy bien!!.... estudiare el caso!! y quiero leer scale_mode para ver la posibilidad de tambien hacerlo aplicable a 32bits, creo que splinter una vez lo explico, que consume muchos recursos, y hablando de gamers supongo que no todos los mega juegos lo pueden tener cualquiera, asi que puede que consuma recurso, pero lo ideal es llevar la herramienta hasta que posea todas las funciones necesarias para un acabado perfecto, hasta ahora bennu me encanta, soy de la escuela div games studios, fenix y ahora bennugd, espero poder hacer un aporte y formar parte del equipo de desarrollo de la herramienta en un futuro, me gusta mucho lenguaje C asi que solo sera cuestion de semanas el adaptarme por completo al desarrollo del entorno junto a uds!!
Compiling code -- generating exe...