_beginthreadex 传参数

来源:百度知道 编辑:UC知道 时间:2024/09/21 02:48:10
unsigned int __stdcall show(LPVOID)
{
printf("OK........\n");
return 0;
}

int main(int argc, char* argv[])
{
int a=10;
HANDLE ha = (HANDLE)_beginthreadex(0,0,(unsigned int (__stdcall *)(void *))show,0,0,0);

MessageBox(0,"pause","",MB_OK);
return 0;
}

怎么把变量a 传入show函数里了

函数原型:
unsigned long _beginthreadex(
    void *security,
    unsigned stack_size,
    unsigned ( __stdcall *start_address )( void * ),
    void *arglist, /* 这个就是传给线程函数的参数的指针 */
    unsigned initflag,
    unsigned *thrdaddr );

HANDLE ha = (HANDLE)_beginthreadex(0,0,(unsigned int (__stdcall *)(void *))show,(LPVOID)&a,0,0);

unsigned int __stdcall show(LPVOID lpvoid)
{
    int a= *(int *)lpvoid;/*需要传多个参数的时候,使用结构体*/
    printf("OK........\n");
    return 0;
}