Program Language/API | MFC

[MFC] CString ↔ BSTR

야곰야곰+책벌레 2022. 4. 14. 14:01
728x90
반응형

BSTR은 여간해서 쓸 일이 잘 없는데, ATL을 쓰다 보면 종종 써야 해서 정리한다.

BSTR은 Visual Basic 개발팀에 의해 만들어졌는데, Visual Basic이 포인터를 지원하지 못했기 때문이다. 그래서 IDispatch 인터페이스를 만들었다. Visual Basic과 COM 객체가 원활히 통신하기 위해서 COM에서 Visual Basic 문자열 타입을 지원하게 되는 결과로 만들어진 것이 바로 BSTR(Basic String)이다. BSTR은 COM에서 유니코드 문자열을 나타내는데 자주 사용된다.

// BSTR -> CString
BSTR bstr = ::AllocSysString(L"ABCD");
CString str = (CString) bstr;
// CString -> BSTR
CString str = L"ABCD";
BSTR bstr = str.AllocSysString();

 

728x90
반응형