C++/(MFC)CString to BSTR


1. 'CString' to 'BSTR': #


Use the AllocSysString member function of the CString:

Code:

If you pass the 'BSTR' to some OLE function, this will normally free the 'BSTR' memory when done with it.

If you use the 'BSTR' by yourself, dont forget to call '::SysFreeString()' when you're done with it.

Code:


2. 'BSTR' to 'CString': #


You will mostly need this when you have some OLE function that returns a 'BSTR'. Such an OLE Function will basically do something like this:

Code:

Use a temporary variable of the type '_bstr_t' to wrap the 'BSTR'. This way you handle both the 208 and make sure that you have no memory leak:
Code:

Note, that this won't work in a UNICODE build.

3. MFC가 아닌 경우. #

#include <comutil.h>
#pragma comment (lib,"comsuppw.lib" )

4. 기타 #

What is this BSTR thing, and how does it differ from WCHAR* ? Here is Eric's Complete Guide To BSTR Semantics.
http://blogs.msdn.com/b/ericlippert/archive/2003/09/12/52976.aspx


이 글에는 0 개의 댓글이 있습니다.