글 수 429
아래에 만든 플러그인이 에러가 납니다.
맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고,
이녀석이 그냥 돌릴땐 잘 돌아가길래
그냥 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)가 뜨면 어떻게 해야하나요[...]
맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고,
이녀석이 그냥 돌릴땐 잘 돌아가길래
그냥 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)가 뜨면 어떻게 해야하나요[...]
//변환부
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;