下面是我的代码。它遇到了处理错误。
`
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;
}
错误:
最佳答案
您有一个未初始化的变量 HWND hMainWin;
,并且您在调用 CreateThread()
时使用该(未初始化)变量作为参数 #4。由于变量未初始化,其值未定义,这就是您收到错误消息的原因。
从外观上看,您的代码似乎是一个控制台应用程序。因此,您没有窗口或其句柄(HWND
),因此您在初始化hMainWin
时遇到困难。
看起来该参数只是一个虚拟变量(并未在线程函数中真正使用),因此您也可以(只是为了“快速修复”)使用 NULL
(或一个0
)
关于windows中的c线程HWND错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42285376/