在win8或server 2012下使用QueueUserWorkItem运行的线程执行完后进程崩溃,该怎么处理
在win8或server 2012下使用QueueUserWorkItem运行的线程执行完后进程崩溃
这是我的测试代码 在线程函数执行完后程序会崩溃 求大神帮忙看看
在win7系统下可以正常运行
------解决思路----------------------
注意调用约定
calling convention
系统回调,一般都是 stdcall, 你要在函数名前加 CALLBACK 宏, 这个宏实际就是MSVC关键字 __stdcall
------解决思路----------------------
DWORD WINAPI TestThread(LPVOID lparam)添加调用约定
给你篇文章参考:http://blog.****.net/augusdi/article/details/5701798
这是我的测试代码 在线程函数执行完后程序会崩溃 求大神帮忙看看
在win7系统下可以正常运行
DWORD TestThread(LPVOID lparam)
{
printf("int test thread \n");
Sleep(1000);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
QueueUserWorkItem((LPTHREAD_START_ROUTINE)TestThread, NULL, 0);
Sleep(3000);
return 0;
}
------解决思路----------------------
注意调用约定
calling convention
系统回调,一般都是 stdcall, 你要在函数名前加 CALLBACK 宏, 这个宏实际就是MSVC关键字 __stdcall
------解决思路----------------------
DWORD WINAPI TestThread(LPVOID lparam)添加调用约定
给你篇文章参考:http://blog.****.net/augusdi/article/details/5701798