본문 바로가기

쓰기

안녕하세요, whoami입니다.

질리지도 않고 프레임워크가 하나 더 올라갔습니다 -_-; 이번에는 유니코드 관련 문제 때문입니다.

관리자님이 올려주신 플러그인 소스는 유용하긴 한데 처음부터 만들려면 막막해지죠. 그래서
플러그인 개발하기 위해 플러그인 사양에 맞게 처음부터 만들 필요가 없게 기본바탕이 되는 프레임을
구성해보았습니다. 이 상태에서 ATPlugin.h 의 define 부분만 바꿔서 그대로 컴파일해도 작동되는
플러그인을 만들 수 있습니다 (단, 아무일도 하지 않습니다.. 당연하겠지만서도;)

이 소스는 Public Domain, 곧 저작권 없는 소스입니다. 프레임워크이니까 당연하겠죠? ^^

다운로드는.. ATPluginFrame_20080712.zip


*ps. Hide_D군님 - 게임 폴더.. 라기보다는 현재 실행되는 프로그램의 폴더를 알려주는 함수는 GetATDirectory 함수를 조금 변형하면 됩니다. 다음의 한 줄을 변경하세요. 비슷한 함수 중복인 것 같아서 따로 넣지는 않았습니다.

// _T("ATCTNR.DLL") 을 NULL 로 변경하면 현재 실행중인 exe 파일의 폴더를 알아올 수 있다.
GetModuleFileName(GetModuleHandle(NULL), szDirectory, MAX_PATH);



아래는 ReadMe.txt 의 내용입니다.
-----------------------------------------------------------------------------------------------------------------
아랄 트랜스 플러그인 개발 프레임워크 20080712 for AralTrans 0.2.20080704

* 파일 설명
 ATPlugin.h - 아랄트랜스 플러그인 규격에 맞는 익스포트 정보.
 ATPlugin.cpp - 아랄트랜스 플러그인이 제공해야 하는 실제 함수 모음
 DefATContainer.h - 아랄트랜스 컨테이너가 제공하는 함수의 원형 (ATCode 플러그인에서 슬쩍 ^^)
 ATCApi.h / ATCApi.cpp - 아랄트랜스 컨테이너 제공 함수를 사용하기 쉽게 Wrapping한 클래스
 tstring.h / tstring.cpp - 유니코드용 변환 함수 및 string 지원 모듈
 Util.h / Util.cpp - 플러그인 제작시 유용한 유틸리티 함수 모음
 ATPlugin.dsw / ATPlugin.dsp - Visual C++ 6.0 용 프로젝트 파일

* 후킹 플러그인을 만들 때
 ATPlugin.h 의 #define ATPLUGIN_HOOKER 를 주석 해제하시고 개발하세요.

* 번역 플러그인을 만들 때
 ATPlugin.h 의 #define ATPLUGIN_TRANSLATOR 를 주석 해제하시고 개발하세요.

* ATPLUGIN_VERSION 과 OnPluginVersion()
 0.2.20080518 공식 플러그인 규격은 아니지만 이후 플러그인 사양이 변했을 때 아랄트랜스
 제작자께서 참조 가능하도록 추가했습니다;

* ATCApi 사용하기 위한 준비
 1. ATCApi.h 를 include 하면 전역 객체로 g_cATCApi가 잡힙니다.
 2. g_cATCApi의 IsValid() 가 TRUE 이면 사용 가능.

* 유니코드 기반 프로젝트를 만들 때
 Visual C++ 6.0 설정의 컴파일러 옵션 define 중 _MBCS 를 지우고 UNICODE, _UNICODE 를 대신 넣으면 됩니다.
 동봉된 프로젝트 파일에는 유니코드용/MBCS용의 설정이 둘 다 있습니다.
 다른 버전의 컴파일러 사용시에는 각 버전의 유니코드 설정 방법을 참고하세요.

* tstring 모듈의 함수 간단 설명
 tstring - 유니코드 설정에 따라 string 혹은 wstring 으로 동작합니다.
 tstring MakeTString(const char *pszString) - char 형식의 문자열을 tstring 으로 바꿔줍니다.
 TCHAR MakeTChar(const char ch) - char 형식의 문자를 TCHAR 로 바꿔줍니다.. 실제로는 필요없을지도;
 MyWideCharToMultiByte() - WideCharToMultiByte 대용 함수입니다. 어플로케일때문에 이렇게 사용해야 한다고..
 MyMultiByteToWideChar() - MyMultiByteToWideChar 대용 함수입니다. 어플로케일때문에 이렇게 사용해야 한다고..
 Kor2Wide(LPCSTR lpKor, LPWSTR lpWide, int nWideSize) - 한글일 경우 MyMultiByteToWideChar를 쉽게 쓰기 위한 간략함수입니다.
 Wide2Kor(LPCWSTR lpWide, LPSTR lpKor, int nKorSize) - 한글일 경우 MyWideCharToMultiByte를 쉽게 쓰기 위한 간략함수입니다.

* Util 함수 간단 설명
 const char *GetATDirectory()
 - 아랄트랜스 설치 디렉토리를 알아온다.
 void GetATOptionsFromOptionString(const char *pszOption, ATOPTION_ARRAY &aOptions)
 - 간단한 옵션 파서. 옵션은 key1(value1),key2(value2) 형식 혹은 key1,key2 도 가능.
 void GetOptionStringFromATOptions(const ATOPTION_ARRAY &aOptions, char *pszOption, int nMaxOptionLength)
 - 위의 옵션 파서와 반대로 옵션 모음을 옵션 문자열로 바꿔주는 함수.

조회 수 :
11600
등록일 :
2008.07.12
18:03:14
엮인글 :
https://arallab.hided.net/3308/dbc/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3308

Hide_D

2008.07.12
19:28:07
... 못찾은 저는 까막눈인듯 ㄱ-

whoami

2008.07.12
21:12:44

Hide_D군님/
const TCHAR *GetExeDirectory()
{
 static TCHAR szDirectory[MAX_PATH]={_T(''),};
 int i;
 
 if (szDirectory[0] != _T(''))
  return szDirectory;

 // _T("ATCTNR.DLL") 을 NULL 로 변경하면 현재 실행중인 exe 파일의 폴더를 알아올 수 있다.
  GetModuleFileName(GetModuleHandle(NULL), szDirectory, MAX_PATH);

 for(i=lstrlen(szDirectory); i>=0; i--)
 {
  if (szDirectory[i] == _T('\'))
  {
   szDirectory[i]=_T('');
   break;
  }
 }
 return szDirectory;
}

List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
429 Talk 아랄 트랜스 github/svn [6] ka7713 734   2018-12-26 2018-12-30 17:26
안녕하세요. 아랄트랜스 0.2/0.3 업데이트가 되지 않는 것이 안타까운데, github나 다른 곳으로 올려주실 생각은 없으신지요. 큰 도움은 안되더라도 조금이나마 기여하고 싶네요.  
428 Archive [플러그인] N eueGoogleTrans 180202 [5] file oscarw854 1413   2018-02-02 2018-02-03 17:45
 
427 Talk VB.NET에서 ezTransXP.dll사용하는 방법은 없나요? [1] R2D2 359   2016-06-14 2018-06-20 14:44
vb.net에서 MFC dll을 써서 이지트랜스로 번역해서 결과물을 가져오고 싶습니다. 그런데 아무리찾아봐도 방법을 모르겠습니다. Imports System.Runtime.InteropServices  Private Declare Fu*nction Translate Lib "ezTransXP.dll" (ByRef cszJapanese As Stri...  
426 Talk ATCTNR에다가 Python만 갖다 붙여도...? [1] Hide_D 279   2016-01-11 2016-01-12 01:30
ATCTNR에 몇가지 버그는 좀 있지만 이거 좀 보완하고, 인젝터 세팅가능하게 한다음에 ATCTNR + ProtocolBuffer(+gRPC) + Python 3 정도로 해서 묶으면, 꽤 재미있는 물건이 나오지 않을까 생각해봅니다 ㅇㅇ 이쪽은 Standalone으로 해볼만할 것 같기도 하고...  
425 Archive [본체] AralTrans.exe ATCTNR.DLL 150622 [4] file TwoComet 534   2015-06-22 2015-07-25 00:12
 
424 Archive [플러그인] ATCode 150531 file TwoComet 470   2015-05-31 2015-06-07 21:30
 
423 Talk UTF-8이나 유니코드 원활한 필터처리를 위해 생각해봤는데 [5] Wales 620   2014-06-16 2014-07-29 16:39
Translate함수에 포함된 필터 전후처리를 따로 빼서 원문 전환전과 번역후에 필터 처리를 하도록 하는건데 문제는 필터들 전부 멀티바이트 중점으로 만들어지다 보니 필터 전부를 손봐야 하는 상황이 오는군요. 그래서 일단 보류중...  
422 Talk 엔드 아랄호환 문제를 모두 수정했습니다 [2] kiereh 493   2014-04-28 2014-04-30 01:25
http://www.eroha.net/%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8/%ec%97%94%eb%93%9c/ 오늘자 버전 (140428)으로 엔드와 아랄트랜스간의 호환 문제가 수정되었습니다. 멀티쓰레드로 번역문을 막 쏘면 문자열 포인터가 튀면서 잘못된 참조를 하던 문제, %가 들어갈...  
421 Talk 요 며칠간 아랄트랜스 사이트가 인기군요. [2] file whoami 924   2014-04-18 2014-04-28 16:06
 
420 Archive [플러그인,소스] KiriKiri 테스트 버전 [1] file 미소미소 707   2014-04-17 2015-02-23 21:38
 
419 OtherFiles Shift-JIS (일본어) -> CP949 (한국어) 문자 대응표 file Hide_D 903   2014-04-13 2014-04-13 22:21
 
418 Archive [플러그인,소스] ATCode 테스트 버전 140322 [4] file whoami 869   2014-03-22 2014-06-15 07:51
 
417 Talk aralgood.com 도메인 부활... [7] whoami 566   2014-03-02 2014-03-17 22:48
혹시나 하고 매일 한번씩 체크하곤 하는데.. 오늘 보니 도메인이 부활했군요! 아랄님이 체크하시고 부활시키셨나? 어쨌든 그에 따라 자동업데이트도 부활하고 좋군요. 혹시 아랄님이나 Hide_D군님 보시면.. 제로보드 업데이트 하실 생각 없으신가요? 꽤 오래된...  
416 Archive [플러그인,소스] ATCode, KoFilter2 테스트 버전 140301 [3] file whoami 439   2014-03-01 2014-03-02 11:59
 
415 Talk 이지트랜스 플러그인 Ehnd 제작자입니다. [6] kiereh 3433   2014-02-27 2014-03-01 17:59
에그헤드의 필터 기능을 타 써드파티 프로그램에서도 사용할 수 있게 하자는 발상으로 이지트랜스 플러그인인 Ehnd를 제작하게 되었습니다. 플러그인이라고 하는 이유는 Proxy DLL 기법을 이용해 구현하였고 (Ehnd의 DLL 이름은 J2KEngine.dll, 기존 이지트랜...  
414 Archive [플러그인,소스] ATCode 테스트 버전 140227 file whoami 455   2014-02-27 2014-02-27 01:59
 
413 Talk 아랄트랜스 0.2 소스 bitbucket 으로 올려놨습니다. [7] whoami 2832   2014-02-18 2018-12-27 18:27
구글코드 SVN 에 무슨 일이 생겼는지 몰라서 일단 백업삼아 bitbucket 에 repositiry 하나 잡고 소스를 올렸습니다. 아무래도 옛날 SVN과 인터페이스가 비슷해서 (TortoiseHg) 편한 Mercurial 로 세팅했고.. 공개로 일단 해놓기는 했는데.. 어차피 개발진이 몇...  
412 Archive [플러그인] atcode 비정상 문자 출력 픽스 file Wales 199   2014-02-16 2014-02-16 21:08
 
411 Talk 아랄트랜스 0.2 구글코드 svn 밴당했나요? whoami 2536   2014-02-15 2014-02-15 22:54
오랫만입니다... ^^ 새해 복 많이 받으세요.. 이미 늦었나. 아래 Wales 님이 코드수정을 몇 개 하신 것을 보고 오랫만에 svn 업데이트를 하려고 하니 에러가 뜨더군요. 그래서 구글코드 들어가 보니 프로젝트가 사라졌네요? 동일한 이름의 프로젝트를 만들려고...  
410 Talk atcode.dll이 출력 못하는 글자를 수집해 봅니다. [2] file Wales 489   2014-02-05 2014-02-07 20:13