1

LPCOLESTR から BSTR を作成する方法についてのアイデアはありますか? ハングアップする愚かなこと..

4

2 に答える 2

5

AnLPCOLESTRは単なるconst wchar_t*、なので、 :SysAllocString()を作成するために使用できます。BSTR

LPCOLESTR olestr = ...;
BSTR bstr = SysAllocString(olestr);

が終わったら、必ず電話SysFreeString()してくださいBSTRに関するMSDNドキュメント参照してください。BSTR

于 2009-08-01T23:37:12.917 に答える
3

BSTRとLPCOLESTRの違いは、BSTRには文字列の前に接頭辞が付いた文字列の長さがあり、LPCOLESTRには接頭辞が付いていないことです。

文字列の長さが接頭辞として付けられているため、BSTRには必ずしも文字列の終わりを示す\ 0が付いているとは限りません。変換するには、通常、クラスCComBSTR(atlcomcli.h)を使用し、ctorはBSTRまたはLPCOLESTRのいずれかを引数として取ります。 BSTR表現を取得するためのメンバーBSTR()です。

CComBSTR b( yourolestring )
// b.BSTR()

CComBSTRは割り当て/解放を処理するため、メモリリークのリスクはありません。

于 2009-08-02T12:04:56.510 に答える