조회 수 56727 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
[질문]
우선 에디터 박스에 변수를 선언하고...
CString m_Edit_A;   라고 했습니다.
이것을 유니코드로 변환하여

WCHAR chTmp[20];

여기에 각문자를 유니코드로 저장을 하여야 하는데...
잘 안되네요...
고수님들의 방법을 알려주세요....

[답변]
CString str = "test" ;
LPWSTR lpszW = new WCHAR[255];

LPTSTR lpStr = str.GetBuffer( str.GetLength() );
int nLen = MultiByteToWideChar(CP_ACP, 0,lpStr, -1, NULL, NULL);
MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpszW, nLen);

//lpszW


delete[] lpszW;
  • Dreamy 2006.04.14 11:00
    ** MultiByteToWideChar 사용시 조심할 것 **

    해당 함수는 ANSI 코드 -> Unicode로 변환하는 API 루틴이다 MSDN을 주의깊게 읽지 않으면 다음과 같은 실수를 할수 있다.

    WCHAR converted[64];
    MultiBytetoWideChar(CP_ACP, 0, original, -1 converted, sizeof(converted));

    MultiBytetoWideChar의 6번째 인자는 출력버퍼의 Unicode 글자수이다.
    sizeof(converted)가 64가 아니라 128이라는 점을 유의해야 한다.
    해당함수는 Unicode로 128글자까지 쓰기시도하므로 버퍼 오버런이 발생할수 있다.

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5