CreateThread返回INVALID_HANDLE_VALUE

hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEvent,&dwParam,0,&... hThreadEvent=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProcEvent,&dwParam,0,&dwThreadID)
if(hThreadEvent==INVALID_HANDLE_VALUE);
{
DWORD dw = GetLastError();
CString str;
str.Format("%d",dw);
AfxMessageBox("事件线程创建失败!" + str);
//AfxMessageBox("事件线程创建失败!");
}
用GetLastError找错,却返回0,既然操作成功,问什么还返回无效句柄

运行后出现事件线程创建失败!0
展开
 我来答
wangnasa
2012-09-23 · TA获得超过776个赞
知道小有建树答主
回答量:732
采纳率:100%
帮助的人:640万
展开全部
你的线程函数ThreadProcEvent写的有没有问题
线程函数原型 查看一下这个函数
DWORD WINAPI ThreadProcEvent(LPVOID lpParam);
追问
我是菜鸟,能不能帮我看看线程函数啊,你给我个邮箱,我把线程函数给你发过去
追答
414477168@qq.com
我看了一下 上面这段代码 if后面多了一个分号
if(hThreadEvent==INVALID_HANDLE_VALUE);
{}

ThreadProcEvent这个函数中 的参数你应该传入了 主线程的句柄&dwParam
应该在线程函数PostMessageA中利用到 但是你没有使用 所以会报错

HWND *hWnd=(HWND*)pParam;

::PostMessageA(*hWnd,WM_MYMSG,0,(LPARAM)EV_RXCHAR);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式