LPCOLESTR から BSTR を作成する方法についてのアイデアはありますか? ハングアップする愚かなこと..
2794 次
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 に答える