2012-04-16 3 views
0

내 프로그램은 많은 것들을 ANSI < => UNICODE 대화를 필요로하므로 추가 기능과 많은 새로운/삭제보다 모든 것을 쉽게 변환 할 수있는 멀티 테페 오브젝트를 생성 할 생각이 있습니다. 의사 코드 :C++ Multitype 오브젝트 아이디어

class CWchar // char based 
{ 
public: 
    public static implicit operator wchar_t*(CWchar cw) 
    { 
     // converting cw.data to wchar_t 
     // up to U+FFFF conversion needed 
    } 
    public static implicit operator char*(CWchar cw) 
    { 
     return cw.data; 
    } 
    CWchar& CWchar::operator=(const char* c) 
    { 
     data = *c; 
     return *this; 
    } 
    CWchar& CWchar::operator=(const wchar_t* c) 
    { 
     //conversion to char* ... 
     return *this; 
    } 

    // add some smart pointers, garbage collector, and leave delete 

private: 
    char* data; 
} 

코딩 가치가 있습니까? 아니면 다른 솔루션에 대해 생각해야합니까? 어쩌면 이미 프로젝트가 완료 되었습니까? 아니면 내가 틀렸어. 그리고이 생각이 나빴어? 감사합니다.

+3

왜 변환을 많이해야합니까? 유니 코드가 아닌 유니 코드 쪽과 인터페이스하는 브리지를 하나만 가질 수 있습니까? –

+0

내 응용 프로그램은 미니 메신저이고 멀티 바이트 char *을받으며 와이드 문자 wchar_t *로 변환해야합니다. 예를 들어 그리스 알파벳은 좋은 형식으로 표시됩니다. – user1112008

+0

@MikeKwan 공지 사항을 추가하는 것을 잊어 버렸습니다. 다리 아이디어에 관해 더 많은 것을 말할 수 있습니까? – user1112008

답변

1

이 메시지는 codecvt과 비슷합니다. 이를 통해 Char *와 multibyte wchar_t * 스트림 사이에서 변환 할 수 있습니다. 이것은 표준 라이브러리의 일부입니다. Stroustrup에 의한 The C++ Programming Language의 제 3 판에는 이것에 대한 좋은 부록이 있습니다.