본문 바로가기

쓰기

지금 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/a3d/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 [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
64 Talk XML 파싱 부분에 문제가 하나 있네요. Hide_D 15772   2009-12-30 2009-12-30 21:42
xml 태그에서 그 태그에 대한 내용이 없을경우 <tag></tag> 로도 표현할 수 있지만 <tag/> 로도 표현 가능합니다. 현재 파서 부분을 보니 <tag/>형식의 태그에는 대응이 되어 있지 않은것 같습니다.  
63 Talk [소스] ATPluginFrame 프레임워크 20100101 테스트 버전 file whoami 17564   2010-01-01 2010-01-01 16:59
 
62 Talk 0.3 Filter 간추려서 정리좀 해봤습니다. [1] file Hide_D 17301   2010-01-01 2010-01-02 05:08
 
61 Talk 문자열의 길이를 반영하는 '필터' [4] Hide_D 15027   2010-01-19 2010-01-22 01:28
문자열 길이가 고정되어서 포인터 바꿔치기를 통해서도 길이가 바뀌지 않는 것들이 있는데, 이놈들을 위해 길이를 반영하는 필터가 있으면 좋을것 같습니다. 인자로 반영할 메모리 주소 1. 모듈(메모리 주소) 기반 2. 레지스터 기반 으로 ATCode의 그것과 비슷...  
60 Talk 문자열 길이에 대한 건의 file G2m 15608   2010-01-21 2010-01-21 18:44
 
59 Talk 뭐라고 설명해야할까요 -_-; 하여간 설명 file G2m 22598   2010-01-21 2010-01-21 19:17
 
58 Talk 어떤 정신나간 게임은 UTF-32를 쓰네요 -_-;; [1] Hide_D 19284   2010-01-30 2010-01-30 22:52
개발자가 미쳐서 Visual C++ 6.0에 iconv라도 섞어쓰는지 (아니면 gcc에 iconv... 던가) 내부 문자 처리를 UTF-32로 합니다 OTL  
57 Talk '잡담인데' [2] FrigateBird 23212   2010-02-22 2011-06-28 01:25
0.3에서 일부 게임이 코드를 잠시 none 해야 되는 녀석들이 있잖아염 코드를 잠시 슬쩍 어디 처 올리든 해서 단축키로 전환하면 좋겠는데  
56 Talk Hide_D's Todo List [1] Hide_D 19791   2010-03-01 2012-08-03 09:02
좀 써 놔야 할것 같습니다 -_-; 안써두니까 안해요 1. FixLine v2 패턴간 빈칸을 없애는 옵션을 추가 -> 아마 큰 패턴 단위로 옵션을 추가할 수 있도록 하는게 좋을 것 같다. 처리 순서 변경 -> 선 개행, 선 패턴, 번역, 후 패턴, 후 개행을 선 패턴, 선 개행,...  
55 Talk 아랄3 디버깅이 말이죠... [2] file JKLeetro 35689   2010-04-20 2010-10-20 07:18
 
54 Talk FixLine 버그 발생 [1] Hide_D 23382   2010-04-25 2010-05-01 22:19
!梨桜 01 21 979C 8DF7 을 처리하기 위해 %01%21{T} 로 설정하면 FixLine이 씹고 다음 데이터를 뱉지 않음 %21{T} 로 설정하면 아예 '닥치고 튕김' 지정된 문자열 + 임의의 문자열 구조로 했을때 버그가 있는듯 최대한 빨리 수리를 -_-;  
53 Talk 0.3님 제발 자비좀[.....] [2] G2m 29951   2010-05-05 2010-05-23 06:21
디에스 이레 뚫으면서 알게된건데 일단 히데찌 말로는 관리자씨가 말하길 0.3 유니코드 완벽이염 ㅇㅇ 라고는 하는데 그 뭐랄까 문장 스크립트 형식이 00 30으로 시작하는 놈은 아랄이가 고대로 씹어 드셔서[............] 이걸 픽스로 잡아도 조트망이고 흠. ...  
52 Talk ATS의 문제점.. Hide_D 23578   2010-05-15 2010-05-15 19:18
0.2의 그 복잡하고 어려운 방식은 일단 뒤로 두고 0.3의 ATS가 갖는 허점이 1. 첨부파일, 필터 경로들을 [일일히!] 입력해야 한다. 2. 코드가 갱신되었을 때 대처할 방법이 전혀 없다. 일일히 입력하는 것 자체는 나쁘지 않은데, 2번 때문에 심각한 문제가 됩...  
51 Talk 0.3님 제발 자비좀[.....] file 아무개 31299   2010-05-23 2010-05-23 06:20
 
50 Talk 6월 1일 2시 챗던 Talk Hide_D 18098   2010-06-01 2010-06-01 02:34
대화 인물 : Hide_D, Rynie, G2m, 프시쵸 대화 주제 : 0.3 [ActiveX, ATS] Hide_D 본인이 직접 뜯어본것이 아니므로 사실과 다를 수 있습니다. Hide_D: 아 0.3 자체는 괜찮아요 Hide_D: 다만... G2m: ㅇㅇ Hide_D: 1. ActiveX Hide_D: 2. ATS Hide_D: 이 두놈...  
49 Talk 번역 모듈로 인터넷을 이용하는 방법. Hide_D 30170   2010-06-04 2010-06-04 23:54
굳이 번역기를 이지트랜스를 쓰지 않아도 아랄트랜스를 사용하는 방법이 필요합니다. 네이버 번역 등을 인터넷으로 접근해서 쓰는 방법으로 번역 모듈을 만들어 보겠습니다.  
48 Talk [0.2] OnPluginInit단에서 스레드를 만들 때 [회피법] Hide_D 27118   2010-06-23 2010-06-23 02:10
http://lab.aralgood.com/board_documents/3202 에 나온대로 플러그인이 초기화되는 시점이 '안전하지' 않기 때문에 Init 단에 스레드를 추가하기가 어려운데, 이를 위한 회피 방법입니다 [OnInitThread에 AfxBeginThread를 사용하면 '무조건' 얼어버리는 현상...  
47 Talk AT 0.2에서 내부 버퍼가 4096을 넘을 수 있어야 합니다. [1] Hide_D 34245   2010-07-13 2011-03-04 05:56
ATCode인지 뭔지 내부 버퍼 길이가 4096바이트로 제한되어있어서 그보다 큰 길이가 들어올 경우 문제가 생깁니다. 길이를 제한하는 플러그인들은 모두 대용량의 텍스트도 받아올 수 있도록 처리해야할 것 같습니다.  
46 Talk ATCustom - 함수 Reference [47] Hide_D 103937   2010-07-20 2010-08-28 04:59
AralTrans의 Algorithm Plugin ATCustom의 함수 목록입니다. - 문서 상태 - 기본 함수 : 변경 중 변경 확률 보통 고급 함수 : 변경 중 변경 확률 높음 - 기본 함수 목록 - 핵심적인 기능을 가지거나 내부의 C++ 코드를 사용해야만 하는 함수의 목록입니다. 메...  
45 Talk ATCustom - 프로젝트 소개 [8] Hide_D 32701   2010-07-22 2011-07-14 11:21
- 소개 - ATCustom은 사용자가 직접 메모리 훅 및 메모리 작업을 할 수 있는 Script 기반 Algorithm 플러그인입니다. Google Chrome에 탑재된 v8 JavaScript Engine을 사용하여 JavaScript 파일을 파싱하여 동작하며, ATCustom에서 제공하는 API를 사용하여 작...