3 回答
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
你可以參考下。
你要是調(diào)用 CreateThread 函數(shù)的話,那么線程過程函數(shù)不是隨便定義的。他要求一個(gè)標(biāo)準(zhǔn)的返回值
DWORD WINAPI ThreadFun(LPVOID para);
參數(shù)名和函數(shù)名你可以隨意,其他不要變。
你編譯器中返回的錯(cuò)誤也說了,CreateThread的第三個(gè)參數(shù)的返回值不能是void,必須是一個(gè) 'unsigned long (__stdcall *) 并且參數(shù)是(void *) 的函數(shù)地址值。
看到這個(gè)錯(cuò)誤提示后,你就應(yīng)該照著提示區(qū)改就可以了。將你的函數(shù)聲明按照提示更改就一切ok了。
DWORD WINAPI 就是 unsigned long (__stdcall *) 的一個(gè)宏。
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
DWORD WINAPI ThreadFunction( LPVOID p )
{
MessageBoxA( NULL, "", "這是子線程", 0 );
}
...
HANDLE hThread = CreateThread( NULL, 0, ThreadFunction, NULL,
NULL, NULL );
CloseHandle( hThread );
你的基礎(chǔ)還很薄弱,先從最基本的C、C++的語言本身學(xué)起。等掌握了C或者C++,再來學(xué)習(xí)Windows API。
添加回答
舉報(bào)
