본문 바로가기

쓰기

http://lab.aralgood.com/board_documents/3202
에 나온대로 플러그인이 초기화되는 시점이 '안전하지' 않기 때문에
Init 단에 스레드를 추가하기가 어려운데, 이를 위한 회피 방법입니다

[OnInitThread에 AfxBeginThread를 사용하면 '무조건' 얼어버리는 현상이 있었습니다
 예전에 (폐기한) DumpText2를 시험할 때나 현재 CustomDic을 개선할 때 모두 나타났습니다]

원리는 간단한데,
1. SetTimer로 수 초 뒤 특정 함수가 동작하도록 한다.
2. 그 함수에서 AfxBeginThread나 _beginthreadex를 시도한다.


UINT threadProc(LPVOID data){
    CDumpDlg dlg;
    dlg.DoModal();
    return 0L;
}

VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime){
    m_pThread = AfxBeginThread(threadProc,NULL);
    KillTimer(NULL,idEvent);
}

BOOL CDumpTextApp::OnPluginInit(HWND hSettingWnd, LPSTR szOptionStringBuffer){
    m_hSettingWnd = hSettingWnd;
    m_szOptionStringBuffer = szOptionStringBuffer;

    m_pTmpTimer = SetTimer(NULL,1,5000,TimerProc);

    return TRUE;
}

이 경우엔 초기화는 안정적으로 동작하지만 역시 '종료'시
추가 스레드가 작동중인지 아닌지 주의해주어야 할 것 같습니다.
분류 :
Talk
조회 수 :
27118
등록일 :
2010.06.23
02:06:41
엮인글 :
https://arallab.hided.net/36249/9b0/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/36249
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 2008-08-03 155436
329 Archive [플러그인, 소스] FixControlCharactor 20080815(테스트버전) [2] file Hide_D 2008-08-15 7533
328 Talk 퓩퓩... 퓩퓩... oTL whoami 2008-08-02 7557
327 Talk 문자열 -> Hex 변환이 제대로 안되네요. [7] Hide_D 2008-08-02 7561
326 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 2008-08-06 7719
325 Archive [플러그인, 소스] CustomSD 0.3 20080810(테스트버전) [2] file Hide_D 2008-08-10 7743
324 Archive [플러그인, 소스] RLCmd 20080806 file whoami 2008-08-06 7775
323 Talk Hide_D군님, CCustomDic2 의 문제점을 알 것 같습니다.. [1] whoami 2008-08-12 7811
322 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080805(테스트버전) file Hide_D 2008-08-04 7830
321 Archive [플러그인, 소스] FixControlCharactor 20080817_4(테스트버전) file Hide_D 2008-08-17 7877
320 Talk DumpText를 만들고 있는데... [2] Hide_D 2008-08-02 7892
319 Talk 리얼라이브 세이브에 대해서... [4] 나는누구인감? 2008-08-01 7894
318 Archive [플러그인] ATCode - OVERWRITE 테스트 버전 20080721 file whoami 2008-07-21 7900
317 Talk 0.3에서 추가할것 Hide_D 2008-08-03 7908
316 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 2008-08-10 7908
315 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 2008-08-12 7929
314 Archive [플러그인,소스] 사용자사전 0.3 20080813 (RC) file Hide_D 2008-08-13 7965
313 Talk cmd로 리버ex 테스트 [2] file 앙마vv 2008-07-25 8011
312 Archive [플러그인, 소스] CustomSD 0.3 20080810_2 [1] file Hide_D 2008-08-10 8012
311 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 2008-08-09 8067
310 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811 file whoami 2008-08-11 8097