¡Muchas gracias! El código de Eternal ha sido clave para solucionarlo. Lo duplico aquí por si a alguien le sirve:
Código:
#include <windows.h>
DWORD WINAPI Hilo(LPVOID lpParam)
{
MessageBox(0, "Mensaje", "Desde un hilo", 0);
return 0;
}
void main()
{
HANDLE hHilo = CreateThread(NULL, 0, Hilo, NULL, 0, NULL);
WaitForSingleObject(hHilo, INFINITE);
CloseHandle(hHilo);
MessageBox(0, "Listo", "Desde main", 0);
}
Pero yo además necesitaba pasarle algunas variables al hilo desde el main y para eso me ha servido el siguiente código que copio aquí también. Es básicamente el mismo código pero esta vez pasándole las variables al hilo:
Primero se define la estructura que contendrá las las variables a pasar al hilo:
Código:
struct ThreadParams
{
char character;
int border;
};
Entonces se llama al hilo así
Código:
struct ThreadParams *params = (struct ThreadParams *)malloc(sizeof (struct ThreadParams));
params->border = 8675309;
hThread = CreateThread (NULL, 0, ThreadProc, (LPVOID)(params), 0, &dwThreadID);
Y el código del hilo:
Código:
DWORD WINAPI ThreadProc ( LPVOID pvoid )
{
struct ThreadParams *params = (struct ThreadParams *)pvoid;
int temp;
temp=params->border;
// Free the parameters
free(lpvoid);
return 0
}