2009-05-16 6 views

答えて

11

MSDNサンプルが間違っています。呼び出し元は、bstrsを解放し、in/outします。それが入っている/出ている場合は、nullまたは有効なbstrを渡す必要があります。それが唯一の場合は、初期化する必要はありません。

msdnのcom allocation rulesからははっきりしませんが、クライアントスタブはout値のメモリをサーバーの呼び出し元の観点から割り当てます。他に誰がそれを呼び出すことができますか?

+1

私はいつも 'BSTR'を直接扱うのではなく、' _bstr_t'を使うのが非常に便利だと分かっています。 – wilx

+0

ええ、誰もがVisual Studioに立ち向かうつもりはありません。 –

9

トニーは正しいですが、私は彼の答えを広げたいと思っていました。状況はBSTRに限られているわけではありません。呼び出し元は、outまたはin/outパラメータを介して返されるメモリを解放する必要があります。

関連する問題