pasar argumentos por un CreateThread?

Iniciado por while, 13 Octubre 2010, 23:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

while

He probado la última opción y tengo algunos problemas al concatenar y pasar por el thread:

FuncionLlamarThread("asdfA","asdfB");


...


void FuncionLlamarThread(char *a1, char *a2)
{
char finaldefinido[50];
sprintf(finaldefinido, "%s-%s", a1, a2);

char *final = finaldefinido;
MessageBox(0, final, "Title",MB_OK); // Funciona, por lo que aparentemente se han concatenado.

CreateThread( 0, 0, &mithread, final, 0, 0 );   
}

Pero luego el mithread, el messagebox aparece en blanco al hacer:
char *nombre = (char*)pVoid;
MessageBox(0, nombre, "Title",MB_OK);

Eternal Idol

"Depuralo para ver que pasas y recibis; depende del codigo pero si estas pasando una estructura que esta en la pila y la funcion retorna ya no es confiable el puntero."

"... podria desaparecer de su ambito ..."

void FuncionLlamarThread(char *a1, char *a2)
{
char finaldefinido[50];
...
}

Tu cadena esta en la pila y su ambito es local a la funcion.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón