문제
lpcolest에서 BSTR을 만드는 방법에 대한 아이디어가 있습니까? 어리석은 일에 끊임없이 ..
해결책
an LPCOLESTR
그냥 a const wchar_t*
, 당신은 사용할 수 있습니다 SysAllocString()
a BSTR
:
LPCOLESTR olestr = ...;
BSTR bstr = SysAllocString(olestr);
반드시 전화하십시오 SysFreeString()
당신이 끝났을 때 BSTR
. 참조 MSDN 문서 BSTR
에스
다른 팁
BSTR과 LPCOLESTR의 차이점은 BSTR이 문자열 앞에 문자열의 길이를 가지고 있다는 것입니다. lpcolest는 그렇지 않습니다.
BSTR에는 문자열의 길이가 접두사가 접두사로 표시되기 때문에 BSTR에 반드시 0 표시 끝이있는 것은 아닙니다. 일반적으로 ccombstr (atlcomcli.h)를 사용하기 위해 CTOR는 BSTR 또는 lpcolest를 인수로 사용합니다. BSTR 표현을 얻기위한 멤버 BSTR ()입니다.
CComBSTR b( yourolestring )
// b.BSTR()
CComBSTR은 할당/풀기를 처리하므로 메모리 누출 위험이 없습니다.
제휴하지 않습니다 StackOverflow