Tôi đang sử dụng ATL (VS2008, vì vậy ATL9 IIRC) để tạo đối tượng COM và đã sử dụng lớp CComVariant
(được định nghĩa trong atlcomcli.h
) để quản lý các loại VARIANT
. Tuy nhiên, cũng có một trình bao bọc VARIANT
khác được gọi là _variant_t
. Có sự khác biệt nào giữa CComVariant
và _variant_t
và tôi nên sử dụng loại nào?CComBariant so với _variant_t, CComBSTR so với _bstr_t
Tương tự, có hai bao bì BSTR
có sẵn - CComBSTR
và _bstr_t
. Một lần nữa, tôi nên thích điều gì và tại sao?
Lưu ý rằng _variant_t và _bstr_t được cung cấp miễn phí trong SDK. ATL được cung cấp với MSDN và được trả tiền. – Ben
+1 cho thông tin đính kèm. Bạn có thể gói gọn một 'BSTR bstr' hiện có hoặc là' _bstr_t my_bstr (bstr, false) 'hoặc' CComBSTR my_bstr; my_bstr.Attach (bstr); 'vì vậy nếu bạn chỉ cần hủy BSTR tự động,' _bstr_t' đơn giản hơn. –