본문 바로가기

쓰기

MFC 모달리스 창 처리할때 흔히 쓰는 방법대로

 void CDumpWindow::PostNcDestroy()
{
    delete this;
    CDialog::PostNcDestroy();

    // TODO: 여기에 메시지 처리기 코드를 추가합니다.
}

이렇게 써두고

헤더에다가
   CDumpWindow *m_pDumpWindow[2];

선언해서

 BOOL CATPluginApp::OnPluginInit(HWND hSettingWnd, LPSTR cszOptionStringBuffer)
{
    g_hSettingWnd = hSettingWnd;
    g_szOptionStringBuffer=cszOptionStringBuffer;

    m_pDumpWindow[0] = new CDumpWindow;

    if(m_pDumpWindow[0])
    {
        m_pDumpWindow[0]->Create(MAKEINTRESOURCE(IDD_DumpWindow),0);
        m_pDumpWindow[0]->ShowWindow(SW_SHOW);
    }

    return TRUE;
}


요렇게 해서

종료할때

 BOOL CATPluginApp::OnPluginClose()
{
    // 주의: 여기서 메모리 확보 등을 하면 에러 발생.
    // TODO: 플러그인 종료 준비, 자원 반환 등을 한다.

    if(m_pDumpWindow[0]!=NULL)
    {
        m_pDumpWindow[0]->DestroyWindow();
        m_pDumpWindow[0]=NULL;
    }

    if(m_pDumpWindow[1]!=NULL)
    {
        m_pDumpWindow[1]->DestroyWindow();
        m_pDumpWindow[1]=NULL;
    }

    return TRUE;
}

이렇게 먹여주면



필터 목록에서 추가 제거할때는 분명 잘 되는데,

필터를 넣어둔 상태에서 '프로그램을 닫아버리면'

error.PNG
오류가 나지 말입니다 =ㅅ=;;;;;
아니 왜 이러는거;;;

디버깅 찍었을때는
이미 CATPluginApp::OnPluginClose()들어온 시점에서 CDumpWindow가 삭제된 상태
-_-;;;;

뭥미

+ 추가
8월차 MultiPlugin으로 테스트해보니
옵션창에다가 추가를 한뒤 닫는 순간에
이미 CDumpWindow가 종료되고 있더랍니다[....]
조회 수 :
13934
등록일 :
2008.12.27
10:44:13
엮인글 :
https://arallab.hided.net/4131/5f9/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/4131

whoami

2008.12.28
10:07:37
에.. 그게 좀 그렇습니다;; OnPluginClose 가 불리는 시점에서 이미 게임이 종료되어 있기 때문에 거기서 열린 윈도우를 정리하려고 하거나 열려있는 FILE 을 닫으려고 하면 저런 에러가 납니다. 아마 아랄 자체의 버그인가 싶기도 하고요. 특히 DebugATCode 를 사용중에 게임을 닫아버리려고 하면 에러창을 꼭 봐야 한다죠;;

한가지 방법이 있기는 한데.. DumpWindow 를 게임 윈도우의 자식으로 생성하는 겁니다. 이렇게 하면 게임이 죽을때 WM_DESTROY 를 자식 윈도우에게 뿌리기 때문에 에러없이 처리할 수 있습니다. 물론 게임은 켜져있지만 필터만 Unload 하는 경우에 대비해서 OnPluginClose 에서 IsWindow() 등으로 윈도우가 살아있는지 확인해서 살아있다면 적절한 처리를 해주는 것이 필요합니다.

참고로 게임 윈도우를 찾아내는 방식은.. ATCode 플러그인 소스 내의 Win32UIMgr 클래스를 참조하시기 바랍니다.

Hide_D

2008.12.28
10:53:19
오우 감사합니다~

그런데, 궁금한건

왜 API를 사용하는 DumpText에서는 왜 아무런 문제가 없었을까 하는 점이죠 =ㅅ=;;

유메

2008.12.30
08:29:52
;ㅅ; 힘내세요. 정식 필터가 나올 그날까지~ (랄까 이미 정식 필터인가?)
List of Articles
번호 제목 글쓴이 조회 수 추천 수sort 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
104 Talk [질문] 번역플러그인에 관해... [2] 호기심맨 12729   2009-01-06 2009-01-06 09:12
Aral을 하다보면 한번 번역된 문장은 다시 번역하지 않고 예전에 번역된 결과값을 다시 쓰잖아요.... 궁금한건 이부분을 Aral본체가 하는것인지.... 아니면... 번역플러그인이 해주는 것인지이거든요.. 그러니까 번역플러그인을 만들려면.... 저 처리를 번역플...  
103 Talk ezTransXP의 다이얼로그 파일의 h,cpp가 누락되어있습니다. [1] Hide_D 12415   2009-01-10 2009-01-12 21:37
커밋하시면서 빼놓으신것 같네요;; ezTransXP 쪽도 수정할게 좀 있어서 저부분 마저 올려주세요~  
102 Talk 코드정리 목록 + 코드 secret sizukana 6   2009-01-17 2009-01-17 11:41
비밀글입니다.  
101 Talk 버그 확인 목록 [4] Hide_D 12347   2009-03-06 2009-03-16 03:09
(확인) CustomDic - 옵션창에서 쓰레드를 중지하지 않았다. CustomScript - 파일이 없는 상태에서 바로가기에 Write 모드가 추가되었을때 에러 KiriKiri - 선택지 출현지 문자열 번역 오류 해결 (확인 필요) FixLine 문자가 아무도 없을때 튕김 -_-? 2Byte 잘 ...  
100 Talk FixLine 기능 추가 [1] Hide_D 11416   2009-03-13 2009-03-13 21:23
rn r 이런식으로 나올때 r이 우선 적용되는 문제를 해결할것 -가능한 방법- 1. Greedy, UnGreedy의 부분적 적용 2. 우선순위 선택 3. 정규식과 맞짱뜨기 4. 어정쩡한 조건문 (r)(n) 이면 둘중 하나 있거나, 둘다 있거나 하면 그렇게 지정되는걸로 - 류제로님의...  
99 Talk 번역 플러그인 난해한 문제???? [3] 호기 14864   2009-03-15 2009-10-20 18:06
지금 ML_Trans라는 번역 플러그인을 만들고 있는데 좀 이해가 안가는 문제가 생기네요.. 아랄에 적용시킨후 다른 번역 플러그인으로 바꿀때는 아무 문제가 안생깁니다 그러니까 번역 플러그인을 EzTransXp<->ML_Trans로 마구 여러번 바꾸어도 문제는 안일어 납...  
98 Talk 히데님이 부탁하신거.... [1] file 류제로 19458   2009-03-21 2011-06-28 01:25
 
97 Talk FixLine '인수 추가' 창 새 디자인 [4] file Hide_D 18340   2009-03-26 2009-03-27 02:07
 
96 Talk 아나 ㅅㅂ VS2008 안쓸랍니다. [5] Hide_D 12867   2009-04-02 2009-04-03 21:16
제컴이 ㅄ인지 설치할때 ㅄ이 된건진 잘 모르겠는데, 쓰기 갑갑해 미치겠습니다ㅣ -_-; Visual Studio 2008 SP1입니다. 자주 발생하는 현상이 예를 들어 int j=0; for(int i=0;i<28;i++) { j+=i; } for(int i=0;i<28;i++) { j+=i; } _wsprintf(L"%d",j); 요런 ...  
95 Talk 참 오묘한 윈도우~ 호기 13568   2009-04-04 2009-04-04 01:02
실수로.... malloc으로 잡은걸 HeapFree 하고 있었네요... (머 정확히 말자면 HeapCreate로 새 힙영역 확보하고 할당 해제 하는걸 구축했습니다만.... 정작 할당부분에서 malloc을썼던거죠) 문제는 이렇게 잘못짠걸 1개월이나 지난후에 알았다는 겁니다. 즉 그...  
94 Talk AralTrans 필터 물갈이할 예정입니다.... [1] Hide_D 14725   2009-05-21 2009-05-22 01:55
일단 제가 방학을 시작하기도 했고 하니 아랄트랜스 내에서 제가 제작한 필터를 싹 물갈이해볼 생각입니다. 우선 물갈이 대상 CustomDic 0.4 KDC CustomScript v2 DumpText v2 FixLine v3 작업을 위해서 다음과 같은 라이브러리를 만들어서 걍 복붙 시전할 계...  
93 Talk 한글 조사 처리 [1] Hide_D 12783   2009-05-23 2009-07-08 22:03
기본적으로 맨 마지막 글자를 보고 받침이 붙느냐 안붙느냐를 처리하게 되는데, 일단 쓰여있는 방법은 http://winp.egloos.com/1917711 http://ttongfly.net/zbxe/?document_srl=45333 걍 맨 뒷글자를 일일히 확인하는 방법이다. 그런데 뒤에 있는 문서의 글자...  
92 Talk 정식 아랄 플러그인으로 요청하시고 싶다면 Hide_D 14234   2009-07-10 2009-07-10 18:29
원칙적으로는 관리자님께 요청하는 것이 맞지만 관리자님은 유니크 몹이시기 때문에[...] 절 부르시면 소환해 드립니다. 원클릭 서비스도 가능할지도[..]  
91 Talk FixLine v2 길이제한 '원문 길이' 버그 Hide_D 12853   2009-07-27 2009-07-27 23:05
긴경우는 잘 동작합니다만, 원문 보다 짧은경우에는 그냥 짧은 상태로 유지가 되어서 덮어쓰기 사용시 몇가지 문제가 발생했습니다. 이건은 조만간 빈칸을 채우던가 해서 해결해야겠습니다. + 이 기능은 CmdFilter의 '원문 덮어쓰기'와 같은 기능입니다.  
90 Talk [소스] ConsoleTrans + 질문 [1] file Hide_D 13002   2009-08-11 2009-08-12 23:34
 
89 Talk QuickTrans2 자료 백업 file Hide_D 13246   2009-08-26 2009-08-26 02:53
 
88 Talk [질문] Http POST전송에 대한 이것저것 [3] 호기 24751   2009-09-22 2009-09-23 08:00
에고 Hide_D님과 HaruKaze님덕에 어찌어찌 POST전송을 할수 있게 되었네요 . 다시한번 두분께 너무 감사드리고요.. 전송해서 결과는 받는것은 되지만... 내용에 궁금한것이 두가지 있어서요 이렇게 다시 질문 올립니다. 우선 POST로 Header를 전송할때 말이에...  
87 Talk 튕기는 문제에 대해서 [6] Hide_D 13286   2009-11-26 2009-12-15 02:55
뭐 다들 아시다시피(?) 대부분의 문제는 보안툴이나 백신에 대해선 충돌하기 때문인데, 여태까지는 소극적으로 대응해왔는데 이젠 좀 적극적으로 뭐가 문제인지를 찾아봐야겠습니다. 해서 다음을 조사해서 보고서를 작성하는 프로그램을 만들어볼 예정입니다~ ...  
86 Talk 고칠거? [10] Hide_D 13651   2009-11-28 2009-12-17 18:13
아랄 처음 켰을때 프로세스 먼져 보이는거 아랄만 아랄로 프로세스에 안뜬다는거. by 피시 제 덧[..] 이지트랜스 경로 지정하면 앞으론 고정해봅시다 ㅇㅇ  
85 Talk Windows7에서 0.3 현재시점으로 안돌아갑니다.ㅜ [6] Hide_D 14656   2009-12-04 2009-12-09 23:27
이유가 뭘까요