본문 바로가기

쓰기


제 추측이지만,

아랄트랜스의 플러그인 로드 시간은

(게임의) 프로세스 동작 -> 플러그인 로드 -> (게임의) 윈도우 생성

으로 매우 빠른것으로 보이며,


플러그인의 종료 시간은

(게임의) 윈도우 파괴 -> 플러그인 종료(?) -> (게임의) 프로세스 파괴

로, 윈도우 파괴보다 늦는것 같습니다.



이게 이유인지는 모르겠지만

플러그인이 초기화되자마자 쓰레드등을 초기화하면,
[그대로 굳어버리는] 현상이 나타납니다.

해결책으로
윈도우(또는 추가로 뜨게되는 다이얼로그)의 초기화나 작업의 개시 (필터의 초기작업) 지점에
쓰레드를 초기화하는 것으로 안정적으로 구동이 가능했습니다.
조회 수 :
7456
등록일 :
2009.01.07
22:07:36
엮인글 :
https://arallab.hided.net/3202/e6f/trackback
게시글 주소 :
https://arallab.hided.net/board_documents/3202

아랄

2009.09.20
09:30:48

후킹플러그인 같은 경우는 어떤 지점을 후킹할 때

자신의 쓰레드를 제외한 모든 쓰레드를 멈추고 후킹 작업을 수행하긴 합니다만...

플러그인은 각각 순차적으로 로드되므로 위의 모든 쓰레드 정지 때문에 

쓰레드 동기화 문제가 발생한 것 같진 않네요.

 

멈추는 플러그인 소스를 한번 분석해 보고 싶어요.

문제가 발생하는 최소화 된 코드만 주시면 더욱 좋구요~ (간단히 쓰레드 초기화 하는 예제)

어쩌면 0.3으로 넘어가도 계속 발생할 수도 있기 때문에 ^^

 

Hide_D

2009.09.20
09:59:33

 일단 이글을 써놓고 나중에 확인해 보니,


클래스를 전역 클래스로 설정해두면서, 클래스의 생성 시점에 스레드를 초기화하기 때문인 것 같습니다.

이것에 대해서는 꼼수를 터득했으니 적용해보고 보고하겠습니다!

List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 [SVN] AralTrans 0.3 - All Plugins [6] 아랄 10352   2009-10-23 2011-10-19 00:01
공지 [SVN] AralTrans 0.2 - Full Source [2] 아랄 16062   2008-07-22 2010-10-31 01:18
12 AralTrans v0.3 Renewal Project [1] file 아랄 5911   2011-04-17 2011-04-17 18:42
 
11 [0.2] OnPluginInit에서 MessageBox 출력시 주의! Hide_D 6815   2009-12-11 2010-06-30 16:54
이전 이슈에서도 다룬적이 있습니다만. 플러그인이 로드된 시점에서 이 플러그인의 부모 객체(즉 게임)가 제대로 로드 되지 않았을 수 있으므로, Init단에서 에러 등의 이유로 MessageBox를 사용할 경우 부모 객체를 NULL로 주더라도 Sleep(2000); 과 같이 지...  
10 STL iterator 사용시 주의사항 [1] 아랄 7564   2009-10-04 2010-06-30 16:54
<발생한 문제> map 에서 erase 호출 시 잘못된 메모리 참조가 발생. <원인> stl container의 iterator들은 링크드 리스트로 관리되고 있는데, 이들은 함수나 블럭의 시작/종료 시점에서 constructor/destructor 가 자동으로 호출된다. 하지만 goto문이나 inlin...  
9 한 함수에 후킹 포인트를 2개 이상 잡을 수 없습니다. [3] Hide_D 7702   2009-07-20 2010-06-30 16:54
적는 것을 깜빡 하고 있었는데, ATCode나 기타 방법들을 사용할 때, 한 함수 내에서 후킹 포인트는 단 하나만 잡아야 합니다. 아랄트랜스 0.2에서는 후킹과 동시에 실행파일 원본과 그 원본의 복사본을 준비해 놓고 원본의 후킹포인트를 jmp를 사용해서 번역 ...  
» [부정확] 플러그인에 쓰레드를 사용할때 [2] Hide_D 7456   2009-01-07 2010-06-30 16:54
제 추측이지만, 아랄트랜스의 플러그인 로드 시간은 (게임의) 프로세스 동작 -> 플러그인 로드 -> (게임의) 윈도우 생성 으로 매우 빠른것으로 보이며, 플러그인의 종료 시간은 (게임의) 윈도우 파괴 -> 플러그인 종료(?) -> (게임의) 프로세스 파괴 로, 윈도...  
7 아랄 컨테이너 창이 hidden상태일 수 있으므로 MessageBox 주의! [2] 아랄 7263   2008-11-07 2010-06-30 16:54
플러그인 인자로 넘겨주는 아랄 컨테이너 창의 핸들. 기본 설정이 트레이로 실행되게끔 되어 있을 시 아랄 컨테이너 창은 화면에 보이지 않는다. 그런데도 아랄 컨테이너 창의 핸들을 부모로 삼아 메세지 창 같은 것을 띄우게 되면 절대 보이지 않으며 게임은...  
6 파일 다이얼로그를 띄운 후 작업폴더가 바뀌는 현상 [3] 아랄 7773   2008-10-28 2010-06-30 16:54
바로가기 생성을 위해 파일 다이얼로그 박스를 띄웠더니 그 후 작업 디렉토리가 바뀌는 현상 발생. 파일 다이얼로그를 띄우기 전/후 안전을 위해 다음의 코드를 추가. // 현재 프로세스의 작업 디렉토리 저장 CString strWorkDir; ::GetCurrentDirectory(MAX_...  
5 [소스] 플러그인 개발을 위한 기본 프레임워크 20080810 file whoami 8614   2008-08-10 2010-06-30 16:54
 
4 [문서] MultiPlugin 2 - 필터 플러그인 규격 file whoami 9380   2008-07-26 2010-06-30 16:54
 
3 [개발환경구축] AralTrans 프로젝트 소스 다운받기 [3] file 아랄 8171   2008-07-24 2010-06-30 16:54
 
2 [개발환경구축] TortoiseSVN 설치하기 file 아랄 7708   2008-07-24 2010-06-30 16:54
 
1 [문서] 아랄트랜스 0.2 - 플러그인 규격 [5] file 아랄 9934   2008-06-22 2010-06-30 16:54