When I use the CreateThread API method, what do I need to do when I want to pass more than one parameter where LPVOID lpParameter is passed?
multiple arguments to CreateThread function
13.6k Views Asked by Aneesh Narayanan At
2
There are 2 best solutions below
0

Put those arguments into a struct, allocated on the heap, and pass the address of the struct in the LPVOID
parameter. Your thread function can then cast the LPVOID
to a pointer to struct and read out the parameters.
It is essential that you put it on the heap because if you put it on the stack of the thread that calls CreateThread
then it can be invalid by the time your thread procedure tries to access it.
You can create a structure that holds all relevant data and pass a pointer to an instance of that structure (filled with the appropriate parameters) to
CreateThread()
In your thread creation function you will need to cast the
LPVOID
back to a pointer to your structure to use it.