DWORD ThreadID1;
BYTE m_ThreadParam[16]={0x10,0x02,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14};
m_thread1=CreateThread(NULL,10*1024,(LPTHREAD_START_ROUTINE)BeginSend,m_ThreadParam,
0,&ThreadID1);
运行的函数BeginSend()的参数应该怎么定义,才能接收到参数,请举个例子,谢谢!

解决方案 »

  1.   

    线程函数格式不都是一定的么 ThreadFunc(LPVOID lpParam)
    在函数里直接转化成BYTE* 然后操作指针+1,+2什么的
      

  2.   

    struct RParam
    {
    int a;
    char b[10];
    };//全局
    RParam* pRaram;
    pRaram->a = 1;
    strcpy(pRaram->b,"hello");
    HANDLE hThread = CreateThread(NULL,0,BeginSend,pParam,0,NULL);
    //线程函数中
    DWORD WINAPI BeginSend(LPVOID pParam)
    {
    RParam param = *(SendParam*)pParam;
          //param.a = 1; param.b = "hello";
      ...
    }
      

  3.   

    DWORD CALLBACK BeginSend(BYTE pThreadParam[16]);