使用多线程,debug没问题,release出错,高手请进

3661512 2005-04-11 01:32:52
我使用多线程,在DEBUG模式下没有任何问题,但是release下就会出错,我将Use run-time library由multithreaded修改为Debug multithreaded后又没有问题了,我调试release下的程序,提示
Unhandled exception in CDDA.exe(NTDLL.DLL):0xc0000005:access violation.
然后指向的反汇编代码是:
7C924287 mov word ptr [eax+2],bx

具体表现为有时候可以正常创建,但第二次创建就会出错,我创建线程的代码是:

if(_beginthreadex(NULL,0,doEncodeThread,GetDC(hDlg),NULL,&uThreadID) == 0)
return false;


线程退出代码为:

UINT WINAPI doEncodeThread(LPVOID lpParam)
{
{
_endthreadex(0);
}
return 1;
}

也使用了CloseHandle(hThread);


请高手帮助.
...全文
115 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
pepsi1980 2005-04-11
debug没问题,release出错,有篇帖子专门讲这个的,你可以看看。你给的代码太少了,看不出来。
回复
oyljerry 2005-04-11
检查指针是否初始化,使用是否正确
回复
老夏Max 2005-04-11
指针变量,BOOL变量要显式初始化!!!
回复
DentistryDoctor 2005-04-11
0xc0000005?
应该是内存操作不当。
回复
fanqing 2005-04-11
没遇到过.关注以下.
回复
xift_2008 2005-04-11
看看是不是内存分配出问题了,比如指针和数组。
我以前也遇到过debug可以release不行的,找了半天是数组的内存分配问题。
回复
mousefj 2005-04-11
Use run-time library改为multithreaded Dll呢
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2005-04-11 01:32
社区公告
暂无公告