Fíjate que no me había percatado bien pero "strcat" en el segundo parámetro utiliza un valor constante const char *, bue... según vi su definición.
desarrolle esta función a conforme vi tu código
Código:
char *_stdcall devuelveCadena(char *cadena)
{
char *valor;
valor = (char*) malloc(0);
strcpy(valor,cadena);
strcat(valor," hola");
return valor;
}
PD: Muy buena protección le diste al código con el "*a".