본문 바로가기

쓰기

지금 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/39e/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 [필독] 테스트필터 사용시 주의사항 라파에 2008-08-03 155439
349 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 2008-08-06 7719
348 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080806(테스트버전) [1] file Hide_D 2008-08-06 8712
347 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807 whoami 2008-08-07 8699
346 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807_2 file whoami 2008-08-07 12660
345 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 2008-08-09 8067
344 Talk 플러그인을 다시 Multi2용으로 만들면서 생긴 궁금증 [4] Hide_D 2008-08-09 8374
343 Archive [플러그인, 소스] 사용자 대본 & 사전 플러그인 20080809(테스트버전) [2] file Hide_D 2008-08-09 8362
342 Talk 맵을 이렇게 사용해도 되나요? [2] Hide_D 2008-08-09 8705
341 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810 file whoami 2008-08-10 8164
340 Archive [플러그인, 소스] CustomSD 0.3 20080810(테스트버전) [2] file Hide_D 2008-08-10 7743
339 Talk 다음 계획 [1] Hide_D 2008-08-10 9995
338 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 2008-08-10 7908
337 Archive [플러그인, 소스] CustomSD 0.3 20080810_2 [1] file Hide_D 2008-08-10 8012
336 Talk CustomSD 원문 단어 흘리기 결과. [2] whoami 2008-08-10 9910
335 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810_2 [1] file whoami 2008-08-10 8641
334 Talk 필터 3개 커밋 완료했습니다. [2] Hide_D 2008-08-11 9263
333 Talk 어휴.. [2] file whoami 2008-08-11 8573
332 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811 file whoami 2008-08-11 8097
331 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811_2 file whoami 2008-08-11 8479
330 Talk 옵션 스트링 버퍼 말이죠? [1] Hide_D 2008-08-11 10830