-
-
[求助]求解,退线程和try的问题!菜鸟问题!
-
发表于:
2009-2-22 01:42
4119
-
用MFCDLL,加载一个DLL,弹出一个对话框界面.
然后创建一条线程,一条死循环线程,用while死循环..
当我按叉叉关闭对话框时,如果线程不退就会出错.我是这样退的..
在MFC的框架退出对话框的函数里是这么写的.
先把while死循环设置为false,就是不让他再进while循环.
再等待线程返回1秒,超时1秒,就杀线程.
最后关线程句柄.
DlgMain::~DlgMain()
{
DlgMain::m_TuiXianCheng = false;
if(::WaitForSingleObject(m_Thread,1000) == WAIT_TIMEOUT)
{
SuspendThread(m_Thread);
::TerminateThread(m_Thread, 0);
}
::CloseHandle(m_Thread);
}
问题是,这样有时关掉对话框的时候还是会崩溃,不知道哪里出错.调试的时候却从来不出错...
不明白退线程我这样写对不对.希望有经验的指点下有什么好的方法..
另外try:
DWORD* add;
try
{
add=(DWORD*)0x12345678;
add=(DWORD*)(add+0x124);
}
catch(...)
{
}
我的目的是当访问到非法指针的时候不让进程崩溃.
上面这样写,如果访问到非法内存还是会导致崩溃的.
不明白希望也指点下,如何写才可以不使进程崩溃呢.
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!