下面是我的代码。得到一个Handle错误。
`
int main(){
HWND hMainWin;
DWORD threadID;
//Create thread down
HANDLE threadHandle = CreateThread(NULL,
0,
threadFunction,
(LPVOID)hMainWin,
0,
&threadID);
}
DWORD WINAPI threadFunction(LPVOID param){ //my thread function
HANDLE hwnd = (HANDLE)param;
for(int i=0;i<5;i++)
{
printf("hello");
}
return 0;
}
错误:
答案 0 :(得分:0)
您有一个未初始化的变量HWND hMainWin;
,并且您在调用CreateThread()
时使用该(未初始化的)变量作为参数#4。由于变量未初始化,其值未定义,这是您收到错误消息的原因。
从外观上看,您的代码似乎是控制台应用程序。因此,您没有窗口或其句柄(HWND
),因此您无法初始化hMainWin
。
看起来这个参数只是一个虚拟变量(在你的线程函数中没有真正使用过),所以你也可以(只是为了快速修复&#34;)用NULL
初始化它。 (或0
)