[완료] Qt 윈도우에서 종료했는데도 프로세스가 남아있는 현상.
글쓴이: song9063 / 작성시간: 화, 2008/09/23 - 5:31오후
안녕하세요?
ubuntu에서 qt로 작성한 소스를 windows로 옮긴 후에 qt windows로 빌드를 했습니다.
ubuntu에서는 빌드한 프로그램을 종료시키면 프로세스가 완전히 종료됩니다.
windows에서는 종료시켰는데도 프로세스가 계속 남아있네요.
windows작업관리자에서 프로세스를 종료시켜야만 합니다.
아래 코드입니다.
SNCFrame클래스는 QMainWindow를 상속받았고 여러개의 자식 위젯을 포함하고 있습니다.
종료처리에 누락된 점이 있는지 도움을 부탁드립니다.
#include <QApplication> #include "SNCFrame.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); SNCFrame *ncFrame = new SNCFrame(); ncFrame->showMaximized(); QObject::connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) ); return app.exec(); }
Forums:
올리신 부분만 보면
올리신 부분만 보면 문제없어보입니다.
혹시 SNCFrame라는 클래스에서 외부 라이브러리를 가져다가 쓰거나 하는건 아닌가요?
외부 라이브러리에서 사용이 끝났을때 리소스를 해제해줄 필요가 있는 것을 안해서 그럴수도 있습니다.
그리고 SNCFrame을 힙말고 스택에 만들고 한번 소멸자에서 브레이크 걸고 잘 호출되고 있는지 확인해보세요.
SNCFrame에서...
SNCFrame클래스에서 프로그램을 종료할때도 QApplication::quit()를 호출하거나 종료되는 함수가 호출되는지요?
창이 close()가 아니라 hide()되는 경우에는 위의 시그널이 호출이 되지 않을 수 있습니다.
제대로 종료시켜 주실려면 종료시키는 함수를 직접 호출하시는 편이 안전합니다.
-------------------------------------
서영진 입니다.
Homepage : http://valentis.pe.kr
blog : http://www.lifeholic.com
-------------------------------------
서영진 입니다.
Homepage : http://valentis.pe.kr
blog : http://www.lifeholic.com
제가 qt를 잘 몰라서 그러는데.
원도우즈에서는 qt
디버깅이 잘 안되나요?
---------------------------------------------
svn + trac + my project --> success ???
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
잘됩니다.
잘됩니다.
답변 감사합니다.
답변 감사합니다.
안녕하세요?
댓글 달기