1. ホーム
  2. c++

[解決済み] BSTRと_bstr_tの違いは何ですか?

2022-02-16 08:45:31

質問

どなたか、上記のタイプの違いと、その違いを明確に説明するための使用例を教えてください。

ご協力をお願いします。 注:この質問は この他の質問

解決方法を教えてください。

BSTRは、COMで使用される文字列データ型です。

_bstr_t はスマートポインタのように動作するラッパークラスで、変数が破壊されたりスコープ外に出たりすると、割り当てられたメモリを解放するようになっています。 また、_bstr_tは参照カウントを持ち、変数_bstr_tを値で渡すたびに増加し(不要なコピーを避ける)、使われなくなると減少します。すべての参照が破棄されるたびに、文字列のために割り当てられたメモリが解放されます。

BSTRの代替品として、CComBSTRがあります。これは BSTR のメモリも管理しますが、参照カウントを持ちません。