スレッドに渡す関数ThreadProcには、引数を渡すことももちろんできる・・・。
引数の受け渡しは、LPVOID型(void *型ポインタ)を介して行われるので、
THREAD_PARAMというパラメータを集めた構造体を用意しておく・・・。
メンバは、スレッド番号m_iNo、出力メッセージm_tszMessage・・・。
THREAD_PARAM配列tpを5要素分用意・・・。
0番のメンバをセットしたら、CreateThreadにはそのアドレスを渡す・・・。
同様に、1~4番でもメンバをセットしてCreateThreadに渡す・・・。
ThreadProcの引数lpParameterはLPVOIDなので、(THREAD_PARAM *)にキャストして、(THREAD_PARAM *)型ポインタpTPに格納し、そこからメンバを取り出して、for文で出力・・・。
これで、スレッドごとにスレッド番号や、メッセージなどを出力できる・・・。
i = 1, m_iNo = 0, m_tszMessage = No.0 i = 1, m_iNo = 4, m_tszMessage = No.4 i = 1, m_iNo = 2, m_tszMessage = No.2 i = 1, m_iNo = 3, m_tszMessage = No.3 i = 1, m_iNo = 1, m_tszMessage = No.1 i = 2, m_iNo = 0, m_tszMessage = No.0 i = 2, m_iNo = 4, m_tszMessage = No.4 i = 2, m_iNo = 2, m_tszMessage = No.2 i = 2, m_iNo = 3, m_tszMessage = No.3 i = 2, m_iNo = 1, m_tszMessage = No.1 i = 3, m_iNo = 0, m_tszMessage = No.0 i = 3, m_iNo = 4, m_tszMessage = No.4 i = 3, m_iNo = 3, m_tszMessage = No.3 i = 3, m_iNo = 2, m_tszMessage = No.2 i = 3, m_iNo = 1, m_tszMessage = No.1 i = 4, m_iNo = 0, m_tszMessage = No.0 i = 4, m_iNo = 4, m_tszMessage = No.4 i = 4, m_iNo = 3, m_tszMessage = No.3 i = 4, m_iNo = 2, m_tszMessage = No.2 i = 4, m_iNo = 1, m_tszMessage = No.1 i = 5, m_iNo = 0, m_tszMessage = No.0 i = 5, m_iNo = 4, m_tszMessage = No.4 i = 5, m_iNo = 2, m_tszMessage = No.2 i = 5, m_iNo = 3, m_tszMessage = No.3 i = 5, m_iNo = 1, m_tszMessage = No.1 続行するには何かキーを押してください . . .
このような感じで・・・。
Sample/ThreadProc.cpp at master · bg1bgst333/Sample · GitHub