2012-09-26 32 views
2

好傢伙處理,這是我的代碼WaitForSingleObject的:如何從_beginthreadex

#include "StdAfx.h" 
#include <iostream> 
#include <windows.h> 
#include <process.h> 


unsigned int __stdcall threadproc(void* lparam) 
{ 
    std::cout << "my thread" << std::endl; 
    return 0; 
} 


int main() 
{ 
    unsigned uiThread1ID = 0; 

    uintptr_t th = _beginthreadex(NULL, 0, threadproc, NULL, 0, &uiThread1ID); 
    WaitForSingleObject(th, INFINITE/*optional timeout, in ms*/); 
    return 0; 
} 

,但我得到了以下錯誤消息

錯誤C2664:「WaitForSingleObject的」:無法從「uintptr_t的」轉換參數1到'HANDLE'

有人能幫我嗎?

+0

只投中將_beginthreadex的值返回(HANDLE)。 –

回答

6

你需要轉換uintptr_t鍵入HANDLE,這表現在第二個例子上this page,更具體:

HANDLE hThread; 
hThread = (HANDLE)_beginthreadex(...); 

(注意:這是唯一合法的與_beginthreadex