Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como Crear Una Dll Para Mi Miniengine

Iniciado por josette, 14 de Marzo de 2006, 01:26:37 PM

« anterior - próximo »

josette

    Hola a todos!!


  Ya tengo parte de miniengine, pero ahora quiero que se pueda usar por todos haciendolo una dll.

  ¿que tengo que hacer? He de poner algo en los fuentes? la dll es dependiente del compilador que la genera?

Marci

 Normalmente los compiladores vienen con new->proyect->dll o algo similar. Yo uso C++ Builder y el dev c++ y los dos traen esa opción. Basicamente te crean una plantilla para que puedas usarla con tu dll.

Cita de: " josette @ 14/03/06"
la dll es dependiente del compilador que la genera
En principio las dll generadas por un compilador deberian funcionar bien con todos los demas. El problema viene si decides utilizar la dll como libreria estatica (lo que suele hacer todo el mundo). Si eliges esta opcion tienes que acompañar a la dll con una libreria lib y ahi si que son incompatibles (por ejemplo las de visual c++ con las del builder).

La otra opcion es que llames al codigo de la dll en tiempo de ejecución con lo que no habria problemas de compiladores pero esta opcion da un poco mas de trabajo


josette

 He encontrado un pequeño juego en donde se ha creado su dll para sus librerias y la verdad esque me ha servido de gran ayuda. Dejo el enlace para quien lo quiera ver:

http://www.gameprogrammer.org/downloads/plane-src.zip


TheAzazel

 Por cierto y para quitar ilusiones...

si tu engine esta en C, entonces podras decir tranquilamente "Una DLL para gobernarlos a todos(=los compiladores)"

pero como este en C++, entonces olvidate y tendras que decir "Una DLL para cada uno, y yo para volverme loco controlandolas"

el resto, ya te lo han dicho, el dllimport y dllexport :)

Marci

 
Cita de: " TheAzazel @ 22/03/06"pero como este en C++, entonces olvidate
Si las enlazas en tiempo de ejecución tambien? :blink:  

TheAzazel

 En ese caso..supongo que no, pero nunca lo he probado, siempre me ha parecido muy engorroso asi que no te lo puedo asegurar del todo. Aunque la teoria me dice que deberia de funcionar bien...

alguien que arroje luz sobre este tema??

AgeR

 Aunque es un poco offtopic, ya que pregunta sobre hacer una DLL...

Las librerías dinámicas en linux o mac se crean igual? Sabéis de algún tutorial o ejemplo para esto?
Me refiero a que lo de dllimport, etc... no servirá para estos sistemas. Usan un sistema parecido?

El caso es que estoy creandome un framework con SDL y ya que SDL es multiplataforma, me gustaría que el framework también lo fuera. Supongo que la información puede servirle tb a josette si quiere hacer su engine multiplataforma.

TheAzazel

 En MacOS ni idea...

pero en Linux si :P

aunque una dll en linux(normalmente un .so y se llaman librerias compartidas) no tiene nada que ver con una dll de windows, el sistema de uso es bastante similar. Ademas, gnu gcc soporta tambien los dllimport/dllexport(en realidad, los emula para ser mas compatible con el codigo windows, internamente utiliza unos sistemas de visibilidad que dan mas juego que en windows).

Echa un vistazo a CRM32Pro.h y al principio de todo, veras como conseguir que funcione con Linux. El resto es lo mismo, generas tambien una .lib de importacion y luego linkas contra ella y a funcionar con la .so

Saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.