_bstr_t 和CComBSTR
来源:互联网 发布:土耳其 新疆 知乎 编辑:程序博客网 时间:2024/05/16 14:23
_bstr_t在VC中是为了兼容BSTR类型而增加的,也就是为了实现LPCSTR与BSTR转换。
它需要头文件#include <comdef.h>
_bstr_t 是BSTR的包装类
转换方法
LPSTR strDemo="Test";
_bstr_t bstr(strDemo);
建议加上try,catch,用于catch(_com_error &e)
The following pseudocode shows the typical use of CComBSTR:
HRESULT CMyObject::MyMethod(IOtherObject* pSomething){ CComBSTR bstrText(L"Hello"); bstrText += " again"; // LPCSTR conversion bstrText.ToUpper(); pSomething->Display(bstrText); // [in] parameter MessageBoxW(0, bstrText, L"Test", MB_OK); // Assumes Windows NT} As you can see, CComBSTR significantly simplifies the use of BSTRs. Four uses of CComBSTR, however, require special care:
当在BSTR*所在的位置作为一个[out]参数传递CComBSTR时,你必须先调用Empty释放string的内容,就象下面这样: HRESULT CMyObject::MyMethod2(ISomething* p, /*[out]*/ BSTR* pbstr){ CComBSTR bstrText; bstrText = L"Some assignment"; // BSTR is allocated. bstrText.Empty(); // Must call empty before pSomething->GetText(&bstrText); // using as an [out] parameter. if(bstrText != L"Schaller") bstrText += "Hello"; // Convert from LPCSTR.}因为在重写BSTR内容之前方法COM 为[out] 参数的规则是并不调用sysfreestring,这讲出现泄漏。 |
- _bstr_t 和CComBSTR
- 字符串转换系列四:CComBSTR和_bstr_t
- CComBSTR和_bstr_t的关联与区别
- CComBSTR, _bstr_t 使用原则
- 关于 BSTR, CComBSTR and _bstr_t
- BSTR、_bstr_t _variant_t与 CComBSTR
- BSTR、_bstr_t 与 CComBSTR _variant_t
- BSTR、_bstr_t与CComBSTR相互转换
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- char, BSTR, _bstr_t, CComBSTR之间的互相转换(转载)
- char, BSTR, _bstr_t, CComBSTR之间的互相转换[转]
- char, BSTR, _bstr_t, CComBSTR之间的互相转换
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
- char, BSTR, _bstr_t, CComBSTR之间的互相转换
- VC学习四:关于 BSTR, CComBSTR and _bstr_t
- 人生致命的八个经典问题
- 略谈如何从工作线程中弹出对话框
- JQuery框架介绍
- JTable中添加JCheckBox(附完整测试程序)
- 一个简单的String类
- _bstr_t 和CComBSTR
- vmware不能上网
- 家中网络
- 老外整的注册验证码,迄今为止我见过的最N的!
- 残奥会部分未售出门票
- C++ Const 应用总结
- The Source Code Of My World(我的世界之源代码)中的经典语句
- 数据挖掘案例——药物选择决策支持
- DB: SQL SERVER - Find Nth Highest Salary of Employee