Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

BeginThread ...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: BeginThread ... Responder citando

Alguien podria ayudarme con mi pequeño problema

yo tengo una funcion
void __fastcall TForm1::MiFunc(void)
{
.
.
.
}

y tengo otra

void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned id;
band=!band;
if(band)BeginThread(NULL, 0, &MiFunc(), NULL, 0, id);
}

donde band es de tipo bool

mi problema es que la funcion me manda un error pero no se de que se trata, admeas no estoy seguro si mi funcion deberia retornar algo si alguien puede ayudarme le agradezco la ayuda de antemano

el error es: "(413)Not an allowed type"
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Estas declarando mal la función y luego también le estas pasando mal el puntero a ella.

La función no debe ser miembro de ninguna clase y si lo es como en tu caso debes declararla como estática.

En la cabecera la declaramos como estática y con los parámetros correctos:
Código:
...
private:   // User declarations
    static int __fastcall MiFunc(void* param);
...

La implementamos:
Código:
int __fastcall TForm1::MiFunc(void* param)
{
    for (int i=0; i<3; i++)
    {
        Beep(880, 100);
        Sleep(400);
    }
    return 0;
}

Y la forma correcta de pasarle el puntero a la función a BeginThread:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    unsigned id;
    band = !band;
    if (band)
        BeginThread(0, 0, MiFunc, 0, 0, id);
}


Si necesitas más información sobre los parámetros de BeginThread y como se cita en la ayuda, puedes mirar la documentación de la función CreateThread del API, ya que es a la que se llama internamente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias _Leo por tirarme la mano en esa Very Happy
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.