使用多线程,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);


请高手帮助.
...全文
208 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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呢

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧