본문 바로가기

쓰기

지금 ML_Trans라는 번역 플러그인을 만들고 있는데 좀 이해가 안가는 문제가 생기네요..
아랄에 적용시킨후 다른 번역 플러그인으로 바꿀때는 아무 문제가 안생깁니다
그러니까 번역 플러그인을  EzTransXp<->ML_Trans로 마구 여러번 바꾸어도 문제는 안일어 납니다.
(즉 플러그인의 OnPluginClose() - dll Free부분은 잘 작동된다는 의미)

그런데 게임을 종료 즉 아랄을 종료시킬때는 이 부분에서 오류창이 뜨네요...
충돌나는 지점은 J2kEngine.dll에서 뽑아쓰는 J2K_Terminate 함수 부분인데요
왜 Aral이 켜져있을때는 문제없이 작동되다가.. 
Aral이 종료될때는 오류창이 나는지 의문이네요..

머 게임 다끝난후에 나오는 오류이니까 사용자입장에서는 큰 문제는 아닐지 몰라도
J2kEngine.dll 이 FreeLib안된채로 끝나는건 많이 찝찝하니까요

참 번역엔진으로 사용하는 dll은 J2kEngine.dll  - v 1.5.1.10 입니다.
분류 :
Talk
조회 수 :
14864
등록일 :
2009.03.15
09:25:58
엮인글 :
https://arallab.hided.net/4300/5df/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/4300

Hide_D

2009.03.16
03:08:59
이 문제로 몇가지 고민을 한 적이 있는데

저 같은 경우에는 MFC로 윈도우즈를 띄워둔 상태에서 Close가 들어올 때 자동으로 윈도우를 소멸시키는 코드를 만들었는데, 그냥 추가/제거 할때는 잘만 되다가 막상 게임을 꺼버리면 위의 경우와 같이 오류가 발생하더군요 -_-;

http://www.aralgood.com/zbxe/347148
이 글에 써놓은 것과 같이
아무래도 게임의 종료가 플러그인의 종료보다 우선적으로 일어나면서, 실제 라이브러리 자체가 미리 파괴되는 것 같습니다. 이걸 해결하기 위해서는 종료시에 게임 윈도우가 열려있는지 닫혀있는지를 확인해야 할건데... [흠]

호기

2009.03.25
22:52:25
아 히데님 말씀이 맞네요...
거의 소스라인마다 디버그 출력을 넣어서 확인해 보았는데...
정상 종료할 시간을 주질 않네요...
즉 게임이 종료하게 되면 OnClose함수가 미쳐 다 완료되기도 전에 중간에 끈겨버리네요 (게임에 따라서...)

기존 번역플러그인은 종료시에 하는일이 사실상
따로 생성한 스레드에서 new 로 잡은 버퍼하나민 바로 delete시키는게 다여서...
이문제를 잘피할수 있었지만...

Free과정이 어느정도 되는 플러그인들은 이문제를 피하기가 힘들어 보이네요~

아랄

2009.10.20
18:06:48
그래서 0.3 에서는 로드되는 모든 플러그인의 DLL 엔트리포인트(DllMain)를 후킹하도록 했습니다.
PROCESS_DETACH 였나?
아무튼 이 값을 감지해서 DLL이 떨어져나가기 전에 OnPluginClose()를 호출해 주도록 하고 있습니다.
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155441   2008-08-03 2008-12-16 00:03
209 Talk Re: SOW 모드의 신기한 점? file whoami 11209   2008-07-23 2009-01-06 01:27
 
208 Talk 사용자대본 지나가다정착한이A님 특별판[...] file Hide_D 11242   2008-10-02 2009-01-06 01:24
 
207 Archive [소스, 파일] 기리기리, 페이트 전용 매크로(완료) [4] file Hide_D 11256   2008-10-07 2008-10-09 00:08
 
206 Archive 후킹방식 바꾼 ATCTNR.DLL [5] file 아랄 11319   2008-12-31 2009-01-06 00:46
 
205 Talk CustomDic의 치환문자열에 대해 ( Hide님께) [2] 호기심맨 11323   2009-01-03 2009-01-05 00:04
안녕하세요 Hide님..저도 전부터 CustomDic유사한걸 만드드라 알아내고 여러번 Test해봐서 얻어낸 결론인데요.. 지금 Hide님이 정의하신 치환문자열"@*_D..../"보다는 역시 실제 쓰일리없는 엉망진창인 알파벳문자열이 훨씬 더 변역결과가 좋더군요. (주로 한...  
204 Talk 조만간 멀티플러그인은 기본 기능으로 흡수시킬까 합니다. 아랄 11346   2008-09-21 2009-01-06 01:25
그리고 ExtTextOut문제를 빨리 해결.. 기리기리 최신 패턴에 대한 업데이트 SVN 저장소 정리하기 등등.. 할게 많군여 ;;  
203 Talk [질문] CustomDic필터와 FixLine의 셋팅순서 [4] 호기심맨 11404   2009-01-03 2009-01-04 14:58
멀티플러그인 필터를 만들려고 하면서 제일 의문이 드는 부분인데요 그 필터들의 실행순서가 어떻게 결정되는지가 무척 궁금하네요 그러니까 예를 들어 A,B,C 3개의 필터를 순서대로 셋팅했다고 가정하면 제가 파악하기로는 알고리즘 코드 ↓ AFilter.OnPreTran...  
202 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) 이면 둘중 하나 있거나, 둘다 있거나 하면 그렇게 지정되는걸로 - 류제로님의...  
201 Talk 역시 번역 플러그인 테스트용으론 Hide_D 11417   2008-07-21 2008-07-21 12:50
체험판이 최고군요 +_+ 사쿠라슈트랏세웹 체험판 설치해놓고 전에 관리자님이 올리신 코드로 잘 돌아가니 이걸로 테스트 해야겠군요  
200 Archive [플러그인,소스] EzTransXP with 사용자사전플러그인(테스트 버전) 20080720_1 [6] file Hide_D 11446   2008-07-20 2008-07-21 13:59
 
199 Archive [플러그인,소스] FixLine 테스트버전 081219 file Hide_D 11449   2008-12-19 2008-12-19 13:03
 
198 Archive 번역용 작업툴 v0.2.2 [2] file HaruKaze 11464   2009-01-06 2009-01-06 23:48
 
197 Archive [플러그인] ATCode 테스트 버전 20081210 file whoami 11500   2008-12-11 2008-12-11 00:07
 
196 Talk 히데님이 말씀하신 테스트파일 [2] file 유르_리샤 11530   2008-12-29 2008-12-30 08:25
 
195 Talk 빈공간[...] file Hide_D 11531   2008-08-16 2008-08-19 00:01
 
194 Archive [소스] ATCode 테스트버전 20081203 file whoami 11548   2008-12-16 2009-01-06 00:51
 
193 Archive [플러그인, 소스] DenyWord 테스트 버전 20081203(4) [버그] [1] file Hide_D 11557   2008-12-03 2008-12-03 17:58
 
192 Talk 일단, 옵션창 이렇게 생기면 되나요? file Hide_D 11569   2008-09-22 2009-01-06 01:25
 
191 Archive [소스] 플러그인 개발을 위한 기본 프레임워크 20080712 [2] file whoami 11600   2008-07-12 2008-07-12 21:12
 
190 Talk ATCode UI 버그 [1] Hide_D 11730   2008-11-01 2009-01-06 01:03
HOOK(0x00480A10,TRANS([ESP+0x28],PTRCHEAT,SAFE)),ENCODEKOR,HOOK(0x005622B0,TRANS([ESP+0x4],PTRCHEAT ​ ,SAFE)),HOOK(0x00562CB0,TRANS([ESP+0x4],PTRCHEAT,SAFE)),HOOK(0x004F5590,TRANS([ESP+0x4],PTRCHEAT,SAFE)) ​ ,HOOK(0x00481790,TRANS([ESP+0x40]...