Preguntilla rápida que me suena que se ha respondido alguna vez:
Si para definir una rutina que se ejecuta al cargar mi módulo hago:
[code language="c"]
/* Routines to be run when the library is imported */
void __bgdexport( mod_cosas, module_initialize )()
{
cosas();
}
[/code]
¿Cómo defino una rutina que quiero que se ejecute una vez por FRAME?.
Vale, me autorepondo:
[code language="c"]
/* Bigest priority first execute
Lowest priority last execute */
HOOK __bgdexport( libwm, handler_hooks )[] =
{
{ 4700, cosas },
{ 0, NULL }
} ;
[/code]
¿Eso es C++, no? ¿Estás metiendo código C++ para ejecutarlo al cargar un módulo en Bennu? ¿O estás haciendo un módulo para Bennu con C++?
El tema de crear nuevas DLL para Bennu me tiene intranquilo desde hace tiempo, ¿Dónde puedo encontrar información sobre el temita josebita? xD
C++??? no, eso no es c++... asi son las dlls de bennu...
en documentacion en el foro
Gracias Splinter. le echaré un vistazo!
Umn, entonces al importar la librería todos los procesos ejecutarán esa función antes del frame? o solo el proceso principal antes de su frame.
La idea es que desde la propia librería se pueden definir varias rutinas que se ejecuten en ciertos momentos. Es una de las ventajas del sistema de módulos de Bennu respecto a Fenix.
Por ejemplo, para el mini-binding para FMOD tengo definidas:
- Una rutina para inicializar FMOD que se ejecuta cuando se carga la librería.
- Otra rutina que se ejecuta cada FRAME (pero sólo una vez, no tiene que ver con los procesos, la ejecuta la propia librería) que actualiza el estado de FMOD.
- Una más que define rutinas que se ejecuten cuando se descarga la librería.
No sé si se pueden definir rutinas en algún momento particular más, pero sí se pueden tocar las variables de los procesos.... Está muy completo el sistema de librerías; ¡gracias Splinter!