BLC 사용 예제 - BLC에 인코딩 추가하기

BLC 라이브러리 다운로드


BLC 라이브러리에서 다른 인코딩을 추가하여 사용하는 방법에 대해 설명한 문서입니다. 자세한 예제는 BLC 내부에 예제로 만들어둔 아래 세 파일을 참고하세요. 다만 예제에는 편의상 CP949 코드와 유니코드를 맵핑시킨 데이터를 소스파일(.cpp파일)에 그대로 집어넣어 만들었기 때문에 실제로 다른 인코딩을 추가하고자 한다면, 다른 방법(파일에서 데이터를 불러온다던지)을 사용하는 것이 낫습니다. 이 문서에서는 새로운 인코딩을 추가하는 방법만 소개합니다. 우선 유니코드와 추가할 인코딩이 사용하는 문자 코드를 변환해주는 코드 테이블이 필요합니다. 이 테이블을 위한 헤더를 하나 만들고 이 헤더에, BLC 내의 헤더 "blc/ustr/encoding/blc_encoding_defines.h"를 포함시킵니다. 그리고 namespace blc::ustr::encoding 내부에 아래의 예제와 같이 작성합니다.

"blc_cp949_table.h" 예제 코드 보기

코드 테이블 헤더를 작성했으면 이제 실제 인코딩과 디코딩을 담당할 클래스를 만들어야 합니다. 마찬가지로 헤더를 하나 만들고 이 헤더에, BLC 내의 헤더 "blc/ustr/encoding/blc_encoding_defines.h"와 "blc/ustr/encoding/blc_encoding.h", 그리고 위에서 작성한 코드 페이지 테이블 헤더(여기서는 "blc/ustr/encoding/blc_cp949_table.h")를 포함시킵니다.

위의 예제와 마찬가지로 namespace blc::ustr::encoding 내부에 아래의 예제와 같이 작성합니다.

"blc_cp949_t.h" 예제 코드 보기

예제에는 멤버 함수 선언문에 코드 구현까지 직접 작성했지만, 따로 .cpp 파일을 만들어서 선언과 구현을 분리해도 됩니다.

이제 "blc/ustr/blc_mchar.h", "blc/ustr/blc_ustring.h" 헤더 등에 선언된 인코딩 타입을 요구하는 템플릿에, using 선언된 "blc::ustr::encoding::CP949" 타입을 넣어 사용할 수 있습니다.



BLC 라이브러리의 다른 요소들을 보려면, 이 이미지를 클릭하세요.