13. maj 2002 - 17:45
Der er
4 kommentarer og
1 løsning
_beginthread med flere argumenter
Jeg vil gerne lave en funktion som tager som argument den funktion som thread´en skal udføre og også de argumenter som denne funktion skal kaldes med.
Problemet er at jeg ikke ved hvordan man giver en funktion som input til en anden funktion (vha pointer?) og heller ikke hvordan man giver _beginthread sin "argumentliste" videre.
void start_thread(funktion, argumenter){
_beginthread(funktion,4096,argumenter);
}
Syntax for beginthread:
#include <process.h>
unsigned long _beginthread(void (_USERENTRY *__start)(void *),
unsigned __stksize, void *__arg);
//-----------------------------------------------------------------------------------------
// 2.6 How to Pass a Function Pointer
// <pt2Func> is a pointer to a function which returns an int and takes a float and two char
void PassPtr(int (*pt2Func)(float, char, char))
{
float result = pt2Func(12, 'a', 'b'); // call using function pointer
cout << result << endl;
}
// execute example code - 'DoIt' is a suitable function like defined above in 2.1-4
void Pass_A_Function_Pointer()
{
cout << endl << "Executing 'Pass_A_Function_Pointer'" << endl;
PassPtr(&DoIt);
}