본문 바로가기

쓰기

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/5ba/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
209 Talk 픽스 라인 연기로 인한 임시 대책 Hide_D 10821   2008-09-26 2009-01-06 01:24
본래 목적인 FixLine이 완성이 늦춰지면서 약간 작전을 변경하도록 하겠습니다. FixLine을 완성시키는 것은 유지하고 FixLine을 3개로 쪼갭니다. OutRuby : FixLine의 TextOnly옵션 DivideLine : FixLine의 Base 기능(DCOnly 대체용) FixChar : FixLine의 Add...  
208 Talk 쓰레드를 사용하려고 하는데 제대로 안되네요; [2] Hide_D 10808   2008-12-25 2008-12-26 22:53
음 일단 쓰레드를 사용하는 파일은 CAutoLoad 클래스 하나뿐이구요. CustomDic에 포함됩니다. 5초마다 한번씩 파일리스트에 등록된 파일의 수정된 날짜를 체크해서 새로 갱신된것이면 새로 읽는다...라는 기능을 가지고 있는데, 애초부터 쓰레드가 동작조차 하...  
207 Archive [플러그인] DenyWord 테스트버전 081120 file Hide_D 10803   2008-11-20 2008-11-20 23:47
 
206 Talk 하루카제님 요청하신거 C++로 만들어봤습니다. [3] Hide_D 10779   2009-01-05 2009-01-05 18:30
// Test.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include <stdio.h> #include <tchar.h> #include <math.h> typedef unsigned int UINT; struct BoolArray{ bool Data[32]; }; BoolArray NewBoolArray(); UINT Algorithm(char * szSource)...  
205 Talk 귀차니즘 발동 Hide_D 10755   2008-07-18 2009-01-06 01:00
현재 프로그래밍을 공부하면서 플러그인을 만드는 관계로 진척속도가 좀 많이 느립니다 =ㅅ=;; 그냥 플러그인 0.1 내놓고, 나중에 마저 개발해야겠네요. 데굴데굴  
204 Talk FixLine 예상 작동 방식 [1] file Hide_D 10715   2008-08-23 2009-01-06 02:04
 
203 Archive [플러그인] FixLine 테스트버전 081231_2 [1] file Hide_D 10702   2008-12-31 2008-12-31 21:48
 
202 Talk 작전명. '누덕누덕' 작전 시작 Hide_D 10674   2011-02-18 2011-02-18 00:02
AralTrans 0.2에서 시작해서 눈꼽만큼씩 고쳐나갈 생각입니다. 주 타겟 OS : Windows 7 32bit 목표 일자 : 2012년 오기 전 PS : JSCustom 프로젝트는 연기되었습니다.  
201 OtherFiles [잡다]UTF8텍스트파일 -> Hex 출력기 file Hide_D 10613   2008-08-03 2008-08-03 16:26
 
200 Talk 토모요 애프터...... [2] file whoami 10576   2008-08-26 2009-01-06 02:04
 
199 Talk AT 0.3 재설계 프로젝트 [1] 아랄 10551   2011-04-16 2011-04-17 09:52
1. 인젝터-서버 방식 2. IDE = vs2010 3. AT 0.3에서 시도하려 했던 중복 기능의 모듈화는 유효, 모듈 명명은 언제든 변할 수 있음 FontMapper, UITrans 4. 스크립트 엔진 = v8 5. 각 플러그인은 운용중인 파일을 반환하는 인터페이스를 가져야 함 6. Launcher...  
198 Talk 죄송해요 ㅠ_ㅠ SVN 위치 trunk -> trunk2 로 옮겨주세요. Hide_D 10477   2008-10-01 2009-01-06 01:24
제가 세팅을 잘못한 모양인지 trunk 그 상태로는 도저히 원상 복구가 안되네요 ㅠ_ㅠ 죄송합니다 위치를 trunk에서 trunk2로 바꿔주시면 감사하겠습니다  
197 Talk 하루카 원문 [1] 나는누구인감? 10337   2008-09-16 2008-09-17 01:00
원문  
196 Archive [플러그인, 소스] DenyWord 테스트 버전 20080910 [1] file Hide_D 10322   2008-09-10 2009-01-06 01:01
 
195 Talk RLCmd, KoFilter 의 디버그 로그 기능에 대해 - 2 whoami 10308   2008-07-28 2009-01-06 01:26
현재 정식버전에 디버그 로그기능은 살아있습니다. 단, 일반 사용자가 건드릴 수 없도록 옵션창에는 빠져 있습니다. 사용하시려면.. 멀티플러그인의 옵션 직접입력 창에서 집어넣거나 바로가기 편집에서 직접 넣어주시기 바랍니다.  
194 Archive 임시 소스 보관 DumpText2 file Hide_D 10305   2008-10-11 2009-01-06 01:52
 
193 Archive [플러그인, 소스] preKoFilter 테스트 버전 20080712 file whoami 10275   2008-07-12 2009-01-06 01:00
 
192 Talk 으아아앍 SVN [1] Hide_D 10267   2008-09-27 2009-01-06 01:24
구조가 꼬였네요 orz 어쩌지[...]  
191 Archive (수정) 하루카제님 요청하신 VB용번역dll입니다. [2] file 호기심맨 10250   2009-01-07 2009-01-08 00:54
 
190 Archive [플러그인] OutRuby 테스트 버전 20080927 [2] file Hide_D 10236   2008-09-27 2008-10-12 03:58