Función SDL_ThreadFunction
Sintaxis
typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
Descripción
Prototipo de función para usar en hilos. Es la función pasada con SDL_CreateThread().
Parámetros
- data
- Puntero a los datos de usuario que se pasan a la función del hilo. Es pasada en el parámetro data de SDL_CreateThread().
Valor de retorno
Devuelve un valor que puede ser enviado a través de SDL_WaitThread().
Observaciones
SDL está compilado en una DLL. Esto significa que es la DLL la que crea un nuevo hilo para el proceso de llamada con la API SDL_CreateThread(). Hay un problema con esto, y es que sólo la RTL de SDL2.DLL será inicializada para esos hilos, ¡y no la RTL de la aplicación que llama!
Para resolver esto, se hace un pequeño truco aquí.
Siempre se utilizan las APIs _beginthread() y _endthread() de la aplicación llamante para iniciar un nuevo hilo. De esta forma, si es SDL2.DLL el que usa esta API, entonces se usará la RTL de SDL2.DLL para crear el nuevo hilo, y si es la aplicación, entonces se usará la RTL de la aplicación.
Así que, en resumen:
Utiliza siempre las funciones _beginthread() y _endthread() de la biblioteca en tiempo de ejecución que te llama.