본문 바로가기

쓰기

아래에 만든 플러그인이 에러가 납니다.


맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고,
이녀석이 그냥 돌릴땐 잘 돌아가길래
그냥 Ctrl+C, Ctrl+V 해주고,
위 아래에
Ansi -> Unicode
Unicode -> Ansi만 붙여넣은 거라
아무래도 변환부에 문제가 있는 것 같습니다.

그래서
멀티플러그인에서 post를 떼어내고
pre 플러그인을

BOOL  __stdcall Translate(LPCSTR cszJapanese, LPSTR szKorean, int nBufSize)
{
    // TODO: 번역작업을 한다.

    wchar_t _JpOriginal[1024]=L"";
    MyMultiByteToWideChar(932,0,cszJapanese,strlen(cszJapanese),_JpOriginal,1024);
    wstring JpOriginal=_JpOriginal;
 
    //변환부
    const wchar_t * _Output=JpOriginal.c_str();
    char _szKorean[2048]="";
    MyWideCharToMultiByte(932,0,_Output,wcslen(_Output),_szKorean,2048,NULL,NULL);
    szKorean =_szKorean;

    // 작업 성공시 TRUE, 실패시 FALSE 반환
    return TRUE;
}

아예 이렇게 바꿔버렸는데도 괴문자(x Y x Y x Y)가 뜨면 어떻게 해야하나요[...]
분류 :
Talk
조회 수 :
9072
등록일 :
2008.07.18
20:51:43
엮인글 :
https://arallab.hided.net/3368/188/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3368

whoami

2008.07.18
20:57:58
변환부에 커다란 문제가 있습니다;
   //변환부
    const wchar_t * _Output=JpOriginal.c_str();  // 1. 이 문장이 완료된 시점에서 _Output 은 비정상적인 포인터일 수 있습니다.
    char _szKorean[4096]="";  // 2. 왜 이게 필요한지 모르겠습니다;
    MyWideCharToMultiByte(932,0,_Output,wcslen(_Output),_szKorean,4096,NULL,NULL);
    szKorean =_szKorean;  // 3. szKorean = _szKorean 의 주소값이 들어갑니다.

    // 작업 성공시 TRUE, 실패시 FALSE 반환
    return TRUE;  // 4. 리턴되는 순간 _szKorean 주소값은 비정상적이 되어버립니다.
}

이렇게 한줄로 바꿔보세요.
// 변환부
MyWideCharToMultiByte(932,0,JpOriginal.c_str(),-1,szKorean,nBufSize,NULL,NULL);
return TRUE;

Hide_D

2008.07.18
21:02:00
조언 감사드립니다!
테스트 해볼게요!

Hide_D

2008.07.18
21:25:22
잘 되네요.
List of Articles
공지 Talk [필독] 테스트필터 사용시 주의사항
라파에
155445   2008-08-03 2008-12-16 00:03