void KbdFunc( void )                   /* Dispatch and count threads. */
{
    int         KeyInfo;    do
    {
        KeyInfo = _getch();
        if( tolower( KeyInfo ) == 'a' && ThreadNr < MAX_THREADS )
        {
            ThreadNr++;
            _beginthread( BounceProc, 0, &ThreadNr );
            WriteTitle( ThreadNr );
        }
    } while( tolower( KeyInfo ) != 'q' );    ShutDown();
}void BounceProc( char *MyID )
{
    char      MyCell, OldCell;
        /* Set up "happy face" & generate color attribute from thread number.*/
    if( *MyID > 16)
        MyCell = 0x01;                 /* outline face */
    else
        MyCell = 0x02;                 /* solid face */
    MyAttrib =  *MyID & 0x0F;          /* force black background */摘自MSDN上面的Sample Multithread C Program,就是不晓得MyID是怎样传进来的

解决方案 »

  1.   

    unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist );最后一个就是参数
      

  2.   

    _beginthread( BounceProc, 0, &ThreadNr );
     &ThreadNr  这个就是 参数
      

  3.   

    既然用了_beginthread,为什么还要传CString类,你还想在线程内用MFC不成???呵呵
      

  4.   

    自定义一个结构,包含两个string成员,把这个结构作为线程数据。
      

  5.   

    你可以将包含CString的类的对象的指针作为参数传递进去,例如:
    void CPage3::LoadThumbImages()
    {
    TerminateThread();
    m_hThread = (HANDLE)_beginthreadex(NULL,0, LoadThumbNail,(LPVOID)this,0/* CREATE_SUSPENDED*/,&m_dwThreadID); 
    m_bRunning = TRUE;
    }unsigned __stdcall CPage3::LoadThumbNail(LPVOID lpParam)
    {
    CPage3* pThumbDlg = (CPage3*)lpParam;
    //使用Dlg的成员变量
    CListCtrl& ListCtrl = pThumbDlg->m_cThumbList;
    CImageList* pImgList = &pThumbDlg->m_ImageListThumb;
    }
      

  6.   

    要传两个CString 需要建立一个结构,保存CString ,然后通过指针传递,另,
    _beginthread不适合在MFC环境下使用,如果用MFC 需要使用_beginthreadex或者AfxBeginThread来建立线程。