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