使用多线程,debug没问题,release出错,高手请进
我使用多线程,在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);
请高手帮助.
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);
请高手帮助.
...全文
相关推荐
为什么debug编译不出错,而release编译会出错
该文档介绍了有的工程在debug中编译没有错误,可是在release下编译却报错的原因和解决方案,希望有助于大家学习。
VC-Debug-Release]出错的问题解决办法
当调试VC 程序时,经常出现release 版本或者debug版本运行崩溃的问题,本文给出了一些解决方法……
release模式正常debug模式下报错.docx
很多时候在写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。我们先来看看
Debug调试与Release调试区别
在开发商用软件时,一定要选择Release调试,而非Debug调试,否则后患无穷。此文档便是描述其区别。
Debug和release的详细区别
VC++里面debug版本和release版本的区别,初学者了解


进程/线程/DLL
