如:
线程定义:UINT LoginThead(LPVOID mParam);
我有一个函数SendRequest(TCHAR *szCommand,int iSeqNo),在该函数中启动LoginThead,如下面所示:int SendRequest(TCHAR *szCommand,int iSeqNo)
{
   AfxBeginThead(LoginThead,NULL,THREAD_PRIORITY_ABOVE_NORMAL);}
我要将szCommand和iSeqNo带到LoginThread中去该如何做。

解决方案 »

  1.   

    1.全局变量;
    2.若调用线程的类是Cxxx;在线程中
    Cxxx *hxxx = (Cxxx *)mParam;
    Cxxx->成员变量;
      

  2.   

    struct PARAM
    {
       int   iSeqNo;
       TCHAR *szCommand;
    };
    PARAM *pm;
    pm->iSeqNo = 
    strcpy(pm->szCommand, );AfxBeginThead(LoginThead,pm,THREAD_PRIORITY_ABOVE_NORMAL);
      

  3.   

    //follow LinHanLao(凌寒) UINT LoginThead(LPVOID mParam)
    {
    PARAM *p=(PARAM *)mParam;
    ...
    }
      

  4.   

    感谢各位的建议特别是(凌寒),有一点我要指出,在带参数时,最好用地址带,如果用指针带的话,一方面指针是只读的,在对里面的内容进行初始化时,如MEMSET时会出错。因此我改成定义结构变量而非结构指针变量,用地址带如:
    PARAM pm;
    pm-.iSeqNo = 
    memcpy(pm->szCommand, ,len);
    AfxBeginThead(LoginThead,&pm,THREAD_PRIORITY_ABOVE_NORMAL);
    成功实现正确传入。
    在线程里接收,凌寒的办法是正确的。再次感谢