C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[39953] Re:Re:시스템 종료시 현재 활성화되어있는 프로그램도 같이 종료했으면 합니다.
박종일 [always97] 1276 읽음    2005-04-27 19:06
수야!╋님 글 읽어주셔서 감사합니다.

우선 프로그램 종료시에는 아무런 문제가 없습니다.
또한 UDP 의 경우에 내부적으로 쓰레드가 생성될수도 있을지 모르겠지만..
제 생각에는 싱글톤 프로세서일거 같구요.
폼 클로즈시키기전에 Free() 메소드도 사용해봤습니다.
또한 원래의 목적은 백그라운드 프로세서인데..  그러니.. 혼자서 돌고있다가..
윈도우가 종료되면 자기도 종료하면서.. 윈도우가 정상종료하게 만들면 되는건데.

자기는 종료해도.. 윈도우의 종료가 정상적으로 되지않는다는게 문제라서요.


수야!╋ 님이 쓰신 글 :
: 제가 가볍게 생각할 수도 있다는것을 먼저 밝히고 이야기를 시작하겠습니다.
: 왜냐면 NMUDP를 사용해본적이 없기때문이죠.. ㅎㅎ
:
: 프로그램 종료시 메모리 엑세스 바이얼레이션이 자주 일어나진 않으신지 먼저 묻고싶습니다.
:
: 프로그램 종료시 UDP같은 소캣 스래드의 동작을 멈추고 제거하는 작업은 반듯이 필요합니다.
:
: UDP가 쓰래드를 동작시키는지는 잘 모르지만 뭐 동작할거라 예상이 되네요.
:
: 또하나 가볍게 생각해보는건
:
: 프로그램이 깨끗하게 종료된다고 한다면 윈도우 종료 이벤트를 굳이 받을 필요는 없다고 보여지네요.
:
:
:
: 박종일 님이 쓰신 글 :
: : 윈도우를 종료시켰을때.. 일반 프로그램들은 종료되면서 윈도우가 종료되게 됩니다.
: : 이럴경우에는 자신의 프로그램에서도 윈도우의 종료메세지를 받아서 처리하게 된다고 알고 있습니다.
: : 그래서 아래와 같이 종료메세지들을 찾아서 첨부해 줬는데..
: : 일반적인 경우에는 정상적으로 종료가 잘 됩니다.
: : 하지만 폼에 UDP를 쓰기위해서 NMUDP 컴퍼넌트를 하나 사용한 뒤에는 종료가 되지 않고 있습니다.
: :
: : 문제는 프로그램은 종료했습니다. 그런데 윈도우가 종료하지 않습니다.
: : 그래서 다시한번 윈도우를 종료하면 되긴하는데..  원천적으로 이문제를 해결할수 있는 방법이 없는지요.
: :
: : 아니면 추가적인 다른 코드가 필요할까요 ?
: :
: : void __fastcall WMQueryEndSession(Messages::TMessage &Msg);
: : void __fastcall WMEndSession(Messages::TMessage &Msg);
: :     BEGIN_MESSAGE_MAP
: :       MESSAGE_HANDLER(WM_QUERYENDSESSION,TMessage,WMQueryEndSession);
: :       MESSAGE_HANDLER(WM_ENDSESSION,TMessage,WMEndSession);
: :     END_MESSAGE_MAP(TForm);
: :
: : void __fastcall Tfrm_ShutDown::WMQueryEndSession(TMessage &Msg)
: : {
: :   Msg.Result=1; //종료 가능 ,
: : //종료하지 못하게 하려면 Msg.Result=0;
: : }
: :
: : //---------------------------------------------------------------------------
: : //Windows 운영체제가 종료
: : void __fastcall Tfrm_ShutDown::WMEndSession(TMessage &Msg)
: : {
: :   if(Msg.WParam==true) {
: :     //Windows 운영체제 종료 시 처리할 작업 수행
: :   }
: :   Msg.Result=0;
: : }

+ -

관련 글 리스트
39950 시스템 종료시 현재 활성화되어있는 프로그램도 같이 종료했으면 합니다. 박종일 1300 2005/04/27
39954     Re:시스템 종료시 현재 활성화되어있는 프로그램도 같이 종료했으면 합니다. 황경록 1336 2005/04/27
39951     Re:시스템 종료시 현재 활성화되어있는 프로그램도 같이 종료했으면 합니다. 수야!╋ 1115 2005/04/27
39953         Re:Re:시스템 종료시 현재 활성화되어있는 프로그램도 같이 종료했으면 합니다. 박종일 1276 2005/04/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.