我在CSoftphoneDlg::OnInitDialog()中写了一个线程 AfxBeginThread(agent_runing, &agent_cfg,THREAD_PRIORITY_NORMAL);现在我想agent_runing的程序运行完后,现接着运行这个线程语句后的语句,我要做一个什么机制啊,只用条件变量还锁.....如何用?谢谢了

解决方案 »

  1.   

    HEVENT g_initproxyfinish;这个定义中的HEVENT在那个头文件中啊?编译出如下错误
    H:\freeh323\source\softphone\StdAfx.cpp(9) : error C2146: syntax error : missing ';' before identifier 'g_initproxyfinish'
    H:\freeh323\source\softphone\StdAfx.cpp(9) : error C2501: 'HEVENT' : missing storage-class or type specifiers
    H:\freeh323\source\softphone\StdAfx.cpp(9) : fatal error C1004: unexpected end of file found
    Error executing cl.exe.
      

  2.   

    定义 HANDLE g_initproxyfinish;这个全局变量,出现如下错啊???
    StdAfx.cpp
    h:\freeh323\source\softphone\stdafx.cpp(10) : error C2040: 'g_initproxyfinish' : 'void *' differs in levels of indirection from 'int'
    Error executing cl.exe.
      

  3.   

    修改一下:
    HANDLE hThread = ::CreateThread(NULL, 0, agent_runing, &agent_cfg, 0, NULL);
    ::WaitForSingleObject(hThread, INFINITE);
    ::CloseHandle(hThread);
      

  4.   

    HANDLE g_initproxyfinish=NULL;定义在函数内能成功,但定义在全局变量中就出现这样的错:StdAfx.cpp
    h:\freeh323\source\softphone\stdafx.cpp(10) : error C2040: 'g_initproxyfinish' : 'void *' differs in levels of indirection from 'int'
    Error executing cl.exe.是不是编译器的问题啊?