 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Satyr Cdt

Registrado: 13 Feb 2003Mensajes: 22Ubicación: Panama
|
Publicado: Vie 14 Nov, 2003 6:21 am Asunto: BeginThread ... |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 14 Nov, 2003 1:10 pm Asunto: |
|
|
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 |
|
 |
Satyr Cdt

Registrado: 13 Feb 2003Mensajes: 22Ubicación: Panama
|
Publicado: Vie 14 Nov, 2003 6:00 pm Asunto: |
|
|
Gracias _Leo por tirarme la mano en esa  |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|