|
WideString은 wchar_t*로 바꿔주는게 아니라 BSTR을 관리하는 클래스입니다. 물론 BSTR은 wchar_t *로 정의 되지만 실제로는 앞에 4byte의 길이 데이터가 숨겨져 있는 특수한 타입으로 OLE 문자열을 취급하기 위해 사용되는겁니다.
WideString을 제대로 이해하기 위해서는 먼저 BSTR에 대한 관련지식을 습득하시길 바랍니다. WideString은 AnsiString이나 UnicodeString과는 달리 레퍼런스 카운트를 관리하지 않기 때문에 원리를 잘 파악하고 사용하지 않으시면 낭패를 보기 쉽습니다. OLE문자열을 관리하는 목적이 아닌 경우라면 UnicodeString을 사용하세요.
사악왕 님이 쓰신 글 :
: WideString 이건 string 에서 wchar_t* 이걸로 바꾸어 주는걸로 알고 있는되요
: 많은 참고 소스들에서 보면
: 예)
: WideString("여기"); 이런식으로 되더라고요 그런되 제가 사용을 하면요
: WideString("여기").c_bstr() -> 이런식으로 되더라고요 그래서 그런지 프로그램이 잘않돌아가는 느낌도 들고요
:
: 또한 ctrl+스페이스를 사용해서 보면 WideString 않나와서 ctrl+마우스 클릭을 해서
: #include <wstring.h> 이것을 썻것든요
:
: 그런되 않되어서요
:
: 재가
: 죄종 질문이에요
: 1번 : .c_bstr() 을 않쓰고 WideString("여기"); 이런식으로 할려면 어떤식으로 해야 하는건가요 ?
: 2번 : 또한
: WideString("여기");
: WideString("여기").c_bstr();
:
: 이2개의 차이가 있는건가요 ?
|