比如我的应用程序,叫aaaa.exe
我关掉了aaaa.exe的主窗口,但是进程里该aaaa.exe仍然在运行
我想实现关掉窗口的时候将这个应用程序的进程也关掉
请问该如何处理?我在OnDestroy()函数里用了exit(0), 没效果。
我关掉了aaaa.exe的主窗口,但是进程里该aaaa.exe仍然在运行
我想实现关掉窗口的时候将这个应用程序的进程也关掉
请问该如何处理?我在OnDestroy()函数里用了exit(0), 没效果。
就是MFC那个dlg里的对话框,我用的是MFC单文档对话框模式
PostQuitMessage(0);
break;
BOOL bRet;
while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
break;
}
else
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
因为我在程序里还调用了一个其它开源框架的函数(处理画面的)
我的主窗体关闭了以后,那个处理画面的还在跑我现在只能在任务管理器里关掉aaaa.exe的进程才能结束整个程序
一些该释放的东西没有释放干净
一般调用com组件如果不及时释放的话就会出现这种问题
该怎么做??
进OnDestroy()了么
有没有调用什么资源
开什么进程
使用什么com组件
你这么强行结束进程也不分析原因太暴力了
我的程序调用了一个开源框架的图像处理函数
我的主程序窗体关掉的时候,那个图像处理函数还在运行(因为图像处理函数是while(1)这种无限循环模式)只有当我在windows任务管理器里关掉aaaa.exe这个进程,程序才退出。
以上我说的都是在程序部署以后运行的情况下,不是在开发环境里F5运行状态下。
exit(EXIT_SUCCESS);
死循环了,还怎么退出,不要写While(1)
改成While(bRunning)
退出之前bRunning = FALSE