출처 : http://devdev.tistory.com/73

 

점점 프로그램들이 복잡해져 갈수록 플랫폼 컨버팅을 감안한 상태로 개발을 해주는게 좋죠. 그렇지 않을 경우 다른 플랫폼으로의 이전시에 너무 많은 시간이 걸리게 되니깐요.

UNICODE를 위한 기본적인 방법만을 이야기하자면 다음과 같습니다. 물론 이건 윈도우즈와 VC++ 환경임을 감안한 경우입니다.

1. 문자열은 반드시 _T나 TEXT 매크로를 사용한다.

 가능하면 모든 문자열에 적용해주는게 좋습니다. 예를 들어 "HELLO WORLD!!"를 입력할 때도 TEXT("HELLO WORLD!!") 또는 _T("HELLO WORLD") 로 해줘야겠죠.

2. 함수들은 문자열 공용함수를 가능하면 사용한다.

 ASCII 시절에 사용하던 함수들의 대부분은 유니코드에서도 쓸수 있도록 typedef 되어있는 함수들이 제공됩니다. 예를 들어 strcpy는 lstrcpy 등이 있죠. lstrcpy는 멀티바이트 환경에서는 strcpy를 사용하고 유니코드 환경에서는 wcscpy를 사용하도록 되어 있습니다. 이러한 것들은 전부 다 바꾸어주어야 합니다.

3. 문자열 선언시 대문자로 된 변수형을 애용한다.

 char 대신 TCHAR 또는 LPSTR 등으로 typdef 되어있는 변수형들은 멀티바이트 환경이냐 유니코드 환경이냐에 따라 다르게 정의되어 있습니다. 그래서 환경을 바꿀때 쉽게 적응할 수 있죠. 처음부터 이렇게 만들어두고 이런 시스템에 적응되면 편리합니다.



이걸 대충 적용해서 바꿔보면 다음과 같이 되겠죠.

--------------------------------------------------
char *str = new char[256];
strcpy(str, "테스트입니다");
delete[] str;
--------------------------------------------------

--------------------------------------------------
TCHAR *str = new TCHAR[256];
lstrcpy(str, _T("테스트입니다"));
delete[] str;
--------------------------------------------------

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,