又要麻烦大家了...不会的内容是在太多了。问题是:
我有一个函数,比如Fun,有三个参数x,y,z,且这个函数创建了一个子线程
void Fun(int x,int y,int z)
{
HANDLE handle=(HANDLE)_beginthreadex(NULL,0,ThreadFun,NULL,0,NULL);
CloseHandle(handle);
}
现在子线程中要用到参数x,y,z
unsigned int _stdcall ThreadFun1(PVOID pm)
{
//要用到x,y,z,比如
        x=x+1;
y=y+1;
z=z+1;
return 0;
}
请问,参数该怎样传递呢?
附注说明一下:主函数中参数必须是分开的,调用时必须是Fun(1,2,3);不要结构体的那种。

解决方案 »

  1.   

    struct param
       {
         int x;
         int y;
         int z;
       }parambuf;
    void Fun(int x,int y,int z)
    {
        
       parambuf.x = x;
       parambuf.y = y;
       parambuf.z = z;
        HANDLE handle=(HANDLE)_beginthreadex(NULL,0,ThreadFun,&parambuf,0,NULL);
        CloseHandle(handle);
    }unsigned int _stdcall ThreadFun1(PVOID pm)
    {
      parambuf *pParam = (parambuf*)pm;
      pParam->x;
      pParam->y;
      pParam->x;
      return 0;
    }