글 수 204
ATPluginFrame 을 테스트중에 발견한건데, 후킹된 프로그램을 그냥 종료할 때
OnObjectClose 및 OnPluginClose 가 불리지 않는 것 같은 인상이 있군요?
MessageBox 도 뜨지 않고 file 로 log 를 뽑아봐도 나오지 않는데.. 실제로 불리지만
프로그램이 종료되면서 미처 log 나 MessageBox 가 열리지 않는 건지도 모르겠습니다만..
답변해 주실 분은 아랄님밖에 없는 것 같아서..
그리고 저번에 ATPluginFrame 테스트 버전 말미에 아랄님께 말씀드린 것이 아직 별 답변이
없는데.. 어떻게 안 될까요?
여기 다시 적자면..
////
아랄트랜스 0.2 및 0.3 겸용으로 플러그인을 만드는 것이 가능한 것 같습니다만, 아랄트랜스 0.3의
구버전 플러그인 체크가 아마도 PreTranslate 등의 익스포트 함수의 존재여부로 체크하는 듯 해서
겸용으로 만들어도 구버전으로 인식되더군요.
그래서.. 플러그인 체크 알고리즘을 GetPluginInfo 함수가 존재하는지 여부로 바꾸실 생각은 없으신지요?
이 함수는 확실히 0.3용 플러그인에서만 존재하니까요.
////
... 였습니다;
그리고.. TRANSLATION_OBJECT 에서 알려지지 않은 부분들 (hPlugin, wszObjectOption,
pObjectExtention 등) 은 무엇을 뜻하는지 궁금하기도 합니다...
아참, 하나 더. procTranslate 로 지정된 번역함수가 불렸을 때 자신이 어떤 컨텍스트로 불렸는지
아는 방법이 있을까요?
OnObjectClose 및 OnPluginClose 가 불리지 않는 것 같은 인상이 있군요?
MessageBox 도 뜨지 않고 file 로 log 를 뽑아봐도 나오지 않는데.. 실제로 불리지만
프로그램이 종료되면서 미처 log 나 MessageBox 가 열리지 않는 건지도 모르겠습니다만..
답변해 주실 분은 아랄님밖에 없는 것 같아서..
그리고 저번에 ATPluginFrame 테스트 버전 말미에 아랄님께 말씀드린 것이 아직 별 답변이
없는데.. 어떻게 안 될까요?
여기 다시 적자면..
////
아랄트랜스 0.2 및 0.3 겸용으로 플러그인을 만드는 것이 가능한 것 같습니다만, 아랄트랜스 0.3의
구버전 플러그인 체크가 아마도 PreTranslate 등의 익스포트 함수의 존재여부로 체크하는 듯 해서
겸용으로 만들어도 구버전으로 인식되더군요.
그래서.. 플러그인 체크 알고리즘을 GetPluginInfo 함수가 존재하는지 여부로 바꾸실 생각은 없으신지요?
이 함수는 확실히 0.3용 플러그인에서만 존재하니까요.
////
... 였습니다;
그리고.. TRANSLATION_OBJECT 에서 알려지지 않은 부분들 (hPlugin, wszObjectOption,
pObjectExtention 등) 은 무엇을 뜻하는지 궁금하기도 합니다...
아참, 하나 더. procTranslate 로 지정된 번역함수가 불렸을 때 자신이 어떤 컨텍스트로 불렸는지
아는 방법이 있을까요?
아랄
- 2009.12.23
- 22:27:53
안녕하세요 whoami님 ^^
1. OnObjectClose 및 OnPluginClose 호출 문제
확인해 보겠습니다.
2. 구버전 필터 체크 알고리즘을 GetPluginInfo 함수가 존재하는지 여부로 판단
네, 다음 버전에 로직을 바꾸겠습니다.
업데이트 되는대로 여기 게시판에 글 올리겠습니다.
3. hPlugin, wszObjectOption, pObjectExtention 의 의미
hPlugin : 플러그인 자신의 모듈 핸들입니다. 핸들 검증 용도로도 쓰일 수 있으며, 컨텍스트 내에 사용된 모든 플러그인을 추적하는 필터를 만들어야 한다면 이 핸들을 사용할 수도 있겠습니다.
wszObjectOption : 객체의 옵션 스트링 버퍼입니다. 플러그인의 옵션 스트링 버퍼와 같은 맥락으로 생각하시면 됩니다.
pObjectExtention : 필터 제작자가 마음대로 사용할 수 있는 변수입니다. OnObjectInit 시에 어떤 포인터를 세팅해도 되고 필요없으면 NULL을 넣어도 됩니다. 항상 유지되는 값입니다.
4. procTranslate 로 지정된 번역함수가 불렸을 때 자신이 어떤 컨텍스트로 불렸는지 아는 방법
현재 컨텍스트의 이름을 얻는 것 외에는 대부분 원하는게 가능할 것 같습니다. pObjectExtention 에 어떤 객체의 포인터를 넣어 놓고, procTranslate 가 호출되었을 때 그 값을 객체로 캐스팅해서 사용하면 객체의 분기문제도 해결될 수 있을 것 같네요.
1. OnObjectClose 및 OnPluginClose 호출 문제
확인해 보겠습니다.
2. 구버전 필터 체크 알고리즘을 GetPluginInfo 함수가 존재하는지 여부로 판단
네, 다음 버전에 로직을 바꾸겠습니다.
업데이트 되는대로 여기 게시판에 글 올리겠습니다.
3. hPlugin, wszObjectOption, pObjectExtention 의 의미
hPlugin : 플러그인 자신의 모듈 핸들입니다. 핸들 검증 용도로도 쓰일 수 있으며, 컨텍스트 내에 사용된 모든 플러그인을 추적하는 필터를 만들어야 한다면 이 핸들을 사용할 수도 있겠습니다.
wszObjectOption : 객체의 옵션 스트링 버퍼입니다. 플러그인의 옵션 스트링 버퍼와 같은 맥락으로 생각하시면 됩니다.
pObjectExtention : 필터 제작자가 마음대로 사용할 수 있는 변수입니다. OnObjectInit 시에 어떤 포인터를 세팅해도 되고 필요없으면 NULL을 넣어도 됩니다. 항상 유지되는 값입니다.
4. procTranslate 로 지정된 번역함수가 불렸을 때 자신이 어떤 컨텍스트로 불렸는지 아는 방법
현재 컨텍스트의 이름을 얻는 것 외에는 대부분 원하는게 가능할 것 같습니다. pObjectExtention 에 어떤 객체의 포인터를 넣어 놓고, procTranslate 가 호출되었을 때 그 값을 객체로 캐스팅해서 사용하면 객체의 분기문제도 해결될 수 있을 것 같네요.
안그러면 분기 필터가 엉망이 될게 뻔해서