본문 바로가기

쓰기

안녕하세요, whoami 입니다.

20100128 버전에서 발견된 아랄트랜스 버전 0.2 용으로만 플러그인 제작시 ATCApi 모듈에서의
에러가 발생하는 문제를 수정하였습니다.

아래는 ReadMe.txt 의 내용입니다.
--------------------------------------------------------------------------------------------------------------------------

아랄 트랜스 플러그인 개발 프레임워크 20100424

 이 플러그인 개발 프레임워크는 아랄트랜스 버전 0.2.20081115 혹은
 아랄트랜스 버전 0.3.20100123 버전에 맞게 제작되었습니다.

* 개요
 아랄트랜스 플러그인 개발 프레임워크는 아랄트랜스용 플러그인을 더 쉽게 개발하기 위해
 아랄트랜스의 플러그인 사양 및 편리한 몇몇 함수를 구현해 놓은 프레임워크입니다.

 이 소스는 Public Domain 이므로 누구나 자유롭게 사용할 수 있습니다.

* 파일 및 폴더 설명
/ - 프로젝트 폴더
 - StdAfx.h / StdAfx.cpp - 플러그인의 기본 세팅이 정의되어 있는 헤더
 - ATPlugin.h - 플러그인의 메인 클래스가 정의되어 있는 헤더
 - ATPlugin.cpp - 플러그인의 메인 클래스의 내용의 구현
 - resource.h / ATPlugin.rc - 플러그인 버전 및 기타 리소스 정의
 - ATPlugin.dsw / ATPlugin.dsp - Visual C++ 6.0 용 프로젝트 파일
 - ATPlugin.sln / ATPlugin.vcproj - Visual C++ 2005 용 프로젝트 파일
 / ATPluginFrame - 플러그인 프레임워크 폴더
  - DefATContainer.h - 아랄트랜스 0.2의 공용 헤더 파일
  - DefStruct.h - 아랄트랜스 0.3의 공용 헤더 파일
  - ATPluginInterface.h / ATPluginInterface.cpp - 아랄트랜스 플러그인 인터페이스가 정의된 파일
  - ATPluginFrame.h / ATPluginFrame.cpp - 아랄트랜스 플러그인 프레임워크 파일
  - Debug.h / Debug.cpp - 디버그 메시지 처리 모듈
  / Libs - 플러그인 개발에 유용한 라이브러리 모음
   - ATCApi.h / ATCApi.cpp - 아랄트랜스 컨테이너 제공 함수를 사용하기 쉽게 Wrapping한 클래스
   - tstring.h / tstring.cpp - 유니코드용 변환 함수 및 string 지원 모듈
   - ATOptionParser.h / ATOptionParser.cpp - 간단한 옵션 인식 파서
   - Util.h / Util.cpp - 플러그인 제작시 유용한 유틸리티 함수 모음

* 플러그인 제작의 기본 흐름
 1. 컴파일러의 프로젝트 속성에서 원하는 구성과 결과 파일명을 지정합니다.
 2. 프로젝트 폴더의 StdAfx.h 에서 제작하려는 플러그인 스위치를 선택합니다.
 3. ATPlugin.h / ATPlugin.cpp 에서 필요한 메소드를 재정의합니다.
 4. 플러그인 개발을 시작합니다.
 5. 필요에 따라 제공되는 라이브러리를 프로젝트에 추가, 사용합니다.

* 플러그인이 실행될 아랄트랜스 버전 선택
 - StdAfx.h 의 #define USE_ARALTRANS_0_2 를 주석 해제하면 아랄트랜스 0.2 용 플러그인이 제작됩니다.
 - StdAfx.h 의 #define USE_ARALTRANS_0_3 을 주석 해제하면 아랄트랜스 0.3 용 플러그인이 제작됩니다.

* 알고리즘 (후킹) 플러그인을 만들 때
 1. StdAfx.h 의 #define ATPLUGIN_ALGORITHM 을 주석 해제합니다.
 2. CATPluginApp 의 OnPluginStart() 와 OnPluginClose() 함수를 재정의하여 개발합니다.
 3. 필요에 따라 ATCApi 라이브러리를 사용하거나 직접 공용 헤더 파일을 추가합니다.

* 번역 플러그인을 만들 때
 1. StdAfx.h 의 #define ATPLUGIN_TRANSLATOR 를 주석 해제합니다.
 2. CATPluginApp 의 Translate() 함수를 재정의하여 개발합니다.

* 필터 플러그인을 만들 때
 1. StdAfx.h 의 #define ATPLUGIN_FILTER 를 주석 해제합니다..
 2. CATPluginApp 의 PreTranslate() 와 PostTranslate() 함수를 재정의하여 개발합니다.

* MFC 를 사용하고자 할 때
 1. 프로젝트를 MFC 사용 - 정적 라이브러리에서 MFC 사용으로 맞춥니다.
 2. 프로젝트 옵션 혹은 StdAfx.h 에서 USE_MFC 를 define 후 개발합니다.

* 포함 라이브러리의 설명
 프레임워크에 포함된 라이브러리는 플러그인 제작에 반드시 필요한 것은 아니나 플러그인 제작시 비교적
 많이 사용하는 함수들을 개발자의 편의를 위해 미리 만들어 놓은 것입니다.

 모든 라이브러리의 소스 및 헤더 파일은 ATPluginFrame/Libs 에 들어있으며 각각의 역할은 다음과 같습니다.
 - ATCApi : 후킹 플러그인 개발 시 ATCTNR.dll 과 통신을 위한 모듈
 - tstring : 문자열 유니코드-MBCS 변환 함수 및 지원 모듈
 - ATOptionParser : 옵션 문자열을 옵션명-값 으로 변환 혹은 그 반대의 역할을 하는 모듈
 - Util : 기타 자잘한 도구 함수 모듈

* 추가 정보
 아랄트랜스 플러그인 개발 프레임워크에 대한 더 자세한 사항은 동봉된 아랄트랜스 플러그인 프레임워크
 프로그래머 가이드 (Guide.mht) 를 참조하시기 바랍니다.

조회 수 :
10246
추천 수 :
1 / 0
등록일 :
2010.01.22
22:51:49
엮인글 :
https://arallab.hided.net/32052/251/trackback
게시글 주소 :
https://arallab.hided.net/board_plugins/32052

Hide_D

2010.01.30
18:45:31
잘 쓰겠습니다!

Hide_D

2010.03.10
15:12:47
VS2008 SP1, 0.2모드, 필터에서 다음과 같이 에러가 발생합니다.

1>f:\ttt\customscript_remodel\atpluginframe\libs\ATCApi.h(204) : error C2664: 'BOOL (LPVOID,NS_ARALTRANS_0_3::PROC_HookCallback,int)' : 매개 변수 2을(를) 'NS_ARALTRANS_0_2::PROC_HookCallback'에서 'NS_ARALTRANS_0_3::PROC_HookCallback'(으)로 변환할 수 없습니다.
1>        변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
1>f:\ttt\customscript_remodel\atpluginframe\libs\ATCApi.h(206) : error C2664: 'BOOL (LPVOID,NS_ARALTRANS_0_3::PROC_HookCallback)' : 매개 변수 2을(를) 'NS_ARALTRANS_0_2::PROC_HookCallback'에서 'NS_ARALTRANS_0_3::PROC_HookCallback'(으)로 변환할 수 없습니다.
1>        변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.

필터모드에서 이것을 사용하는것 같진 않지만
extern으로 선언하도록 되어있기에 파일을 제거하니 우선 돌아가긴 합니다.

whoami

2010.03.11
22:38:50
음.. 그렇군요; 분명히 테스트한 것 같은데 안 된 부분이 있나봅니다;;
이상없이 컴파일되게 하려면 204번째 줄과 206번째 줄을 다음과 같이 고치면 될 겁니다.
204:   { return m_cEntry.procHookCodePoint(pCodePoint, (NS_ARALTRANS_0_3::PROC_HookCallback)procCallback, nPriority); }
206:   { return m_cEntry.procUnhookCodePoint(pCodePoint, (NS_ARALTRANS_0_3::PROC_HookCallback) procCallback); }

.. 뭐, 이미 알고 계시겠지만 말이죠.

해당 라이브러리를 안 쓴다면 물론 그냥 프로젝트에서 삭제시켜버리셔도 됩니다... 라기보다는
삭제하는게 메모리를 덜 잡아먹겠죠 ㅎㅎ

whoami

2010.04.24
23:57:18

여기 이후의 댓글은 20100424 버전에 대한 댓글입니다.

미래도

2015.11.11
22:11:41

감사합니다 >_<

일단 손대보려하는데.. VS15에서도 잘되길....

List of Articles
주제 최종 글 댓글 조회 수
[소스] 플러그인 개발을 위한 기본 프레임워크 20100424 by whoami file 2018-08-18 12:59 twocomet 5 10246
[플러그인,소스] ConvertJK 090107 by Hide_D file 2015-11-11 21:45 Hide_D 9 11133
[플러그인, 소스] Structure change plugin by P.h.D file 2013-10-05 18:00 P.h.D 25 69182
[플러그인] HK2FK 20121024 by EroGame file 2013-08-18 19:59 EroGame 1 1897
[플러그인] Kirikiri 101130 by Hide_D file 2013-08-04 13:56 Hide_D 24 38859
[플러그인] Structure change plugin 121024 by EroGame file 2012-11-04 03:41 EroGame 1 4085
[플러그인] KoFilter 1.0.20120115 by EroGame file 2012-09-06 21:07 EroGame 2 3857
[플러그인,소스] KoFilter 1.0.20090114 by Hide_D file 2012-08-08 08:37 Hide_D 10 19413
[플러그인] CustomDic 0.3 20090108 by Hide_D file 2012-06-15 07:21 Hide_D 12 21691
[플러그인, 소스] FixLine v2 20090405_2 by Hide_D file 2011-10-09 00:48 Hide_D 13 18933
[플러그인] DenyWord 20081204 by Hide_D file 2011-10-09 00:41 Hide_D 10 15069
[플러그인] 2Byte 090224 by Hide_D file 2011-09-24 03:14 Hide_D 6 13919
[플러그인] CustomScript 20081123 by Hide_D file 2011-08-17 22:17 Hide_D 10 19512
[플러그인] DumpText (2.0.0.118) by Hide_D file 2011-08-17 22:17 Hide_D 1 10262
[플러그인] DCOnly 20080817 by Hide_D file 2011-08-17 22:17 Hide_D 4 14661
[플러그인] GoogleTrans (1.0.0.114) by Hide_D file 2011-08-17 22:17 Hide_D 2 13386
[플러그인, 소스] RLCmd 1.0.20081005 by whoami file 2011-07-22 17:56 whoami 2 11846
[플러그인] Cache 1.0.0.126 by Hide_D file 0 9776
[플러그인, 소스] FillSpace_091219 by Hide_D file 2009-12-20 23:24 Hide_D 3 9197
[플러그인] Korean Duplication Checker(KDC) 20091220 by Hide_D file 0 13097