2008-12-04 4 views

Antwort

18

BSTR ist der String-Datentyp, der mit COM verwendet wird.

_bstr_t ist eine Wrapper-Klasse, die wie ein intelligenter Zeiger funktioniert, so dass der zugewiesene Speicher freigegeben wird, wenn die Variable zerstört wird oder den Gültigkeitsbereich verlässt. _bstr_t hat auch eine Referenzzählung, die jedes Mal ansteigt, wenn Sie die Variable _bstr_t nach Wert übergeben (unnötige Kopie vermeiden) und dekrementieren, wenn sie nicht mehr verwendet wird. Wenn alle Referenzen zerstört sind, wird der zugewiesene Speicher für die Zeichenfolge freigegeben.

Eine Alternative zu BSTR ist der CComBSTR. Es verwaltet auch den Speicher für den BSTR, hat jedoch keine Referenzzählung.

13

BST R ist ein roher Zeiger, während _bstr_t eine Klasse ist, die diesen Zeiger einkapselt.

Es ist der gleiche Unterschied wie char * vs Std :: String.