1
后我有简单的应用程序,从它的主要启动QDialog的是这样的:Qt的过程停留在存储器应用程序关闭
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(resources);
QApplication app(argc, argv);
QCoreApplication::setApplicationName(APP_NAME);
QCoreApplication::setApplicationVersion(APP_VERISON);
QCoreApplication::setOrganizationDomain(APP_DOMAIN);
app.setStyle("WindowsXP");
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
AuthenticationDialogContainer *pAuthenticationDialogContainer = new AuthenticationDialogContainer();
if(pAuthenticationDialogContainer->exec() != QDialog::Accepted) {
return 0;
}
return app.exec();
}
时其传递是app.exec(后应用程序的结束)和应用做假设要做的事情。当我打开Windows XP任务管理器时,我发现该进程仍在内存中,我需要手动将其杀死。我如何防止它发生?
您应该修改最后一行,以便在返回之前在控制台中输出app.exec()的结果。如果没有打印出来,那么它意味着app.exec()实际上不会返回,因此阻止了您的进程结束。 – SirDarius 2011-06-10 07:44:54