请问在ATL编写ActiveX 该如何使用线程/多线程.

解决方案 »

  1.   

    http://www.mvps.org/vcfaq/com/index.htm
      

  2.   

    在MFC下,用CWinThread* m_pThread[int]来定义多线程,那么在ATL又要怎样定义的.
      

  3.   

    not using MFC thread class such as CWinThread,use Thread API such as CreateThread
      

  4.   

    不能将参数 3 从“DWORD (void)”转换为“LPTHREAD_START_ROUTINE"
    请问我该怎样处理这个问题
      

  5.   

    Thread API 哪能有比较好的资料,精简的实例,我现在要做个控件,没那么时间去研究。
      

  6.   

    //my example:
    DWORD WINAPI FirstSyncThread( LPVOID lpParam ) 
    {
    CMEUUOutLook*pMeuu=(CMEUUOutLook*)lpParam;
    if(pMeuu !=NULL)
    {
                 ...
             }
    return 0;
    }
    void CMEUUOutLook::FirstSyncWithRemote()
    {
     DWORD  dwThreadId;
     m_hFirstThread = CreateThread( 
     NULL,                        // no security attributes 
     0,                           // use default stack size  
     FirstSyncThread,                  // thread function 
     this,                // argument to thread function 
     0,                           // use default creation flags 
     &dwThreadId);                // returns the thread identifier 
     
    }
      

  7.   

    AnalyseHtml.cpp(296) : error C2664: “CreateThread” : 不能将参数 3 从“DWORD (LPVOID)”转换为“LPTHREAD_START_ROUTINE”
            在匹配目标类型的范围内没有具有该名称的函数
    请问我该如何解决这个问题呢.谢谢!
      

  8.   

    m_hFirstThread = CreateThread( 
     NULL,                        // no security attributes 
     0,                           // use default stack size  
     (LPTHREAD_START_ROUTINE)FirstSyncThread,           // thread function 
     this,                // argument to thread function 
     0,                           // use default creation flags 
     &dwThreadId);
      

  9.   

    我用了(LPTHREAD_START_ROUTINE),可却提示类型转换错误
    AnalyseHtml.cpp(293) : error C2440: “类型转换” : 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”  在匹配目标类型的范围内没有具有该名称的函数我是在ATL 下写ActiveX控件,是否还需要什么呢.
      

  10.   

    DWORD WINAPI FirstSyncThread( LPVOID lpParam ) 
    {
    CMEUUOutLook*pMeuu=(CMEUUOutLook*)lpParam;
    if(pMeuu !=NULL)
    {
                 ...
             }
    return 0;
    }
    线程函数是全局的,在我的工程下可以编译通过。VC6+win2000
      

  11.   

    别忘了 把 WINAPI 加在函数原型上。
      

  12.   

    DWORD WINAPI ThreadFunc( LPVOID lpParam ) 
    {
    return 0;
    }//////////////////////////////////////
     DWORD dwThreadId, dwThrdParam = 1; 
        HANDLE hThread;     hThread = CreateThread( 
                  NULL,                        // default security attributes 
                  0,                           // use default stack size  
                  ThreadFunc,                  // thread function 
                  &dwThrdParam,                // argument to thread function 
                  0,                           // use default creation flags 
                  &dwThreadId);                // returns the thread identifier 
     
     ////////////////
    我都还没向线程里写代码,但出现:"LNK1169: 找到一个或多个多重定义的符号"错误