C语言,第1张

C语言,第2张

VC中加入Bstr_t是为了兼容Bstr类型,也就是实现LPCSTR和BSTR之间的转换。
它要求头文件#include
BSTR_t是bstr
转换方法的包装类
lpstrdemo = " Test ";
bstr _ t bstr(strDemo);
建议添加try,catch,用于catch (_ com _ error & e)
下面的伪代码展示了ccombstr的典型用法:
hresult cmy object::my method(iother object * p something)
{
ccombstr bstr text(l
bstr text+= " again ";// LPCSTR转换
bstrText。ToUpper();
p something-> Display(bstr text);// [in]参数
MessageBoxW(0,bstrText,L"Test ",MB _ OK);//假设Windows NT
}
如您所见,CComBSTR大大简化了BSTR的使用。但是,CComBSTR的四种用法需要特别小心:
显式释放BSTR
使用CComBSTR作为[out]参数
在右侧赋值中使用ccom bstr自动变量
在BSTR*中使用ccom bstr成员变量当您将CComBSTR作为[out]参数传递时,必须首先调用Empty来释放字符串的内容,如下所示:hresult cmy object::my method 2(I something * p
bstr text = L " Some assignment ";// BSTR被分配。
bstrText。empty();//必须在
p something-> GetText(& bstr text)之前调用empty//使用作为[out]参数。
if(bstrText!= L " Schaller ")
bstr text+= " Hello ";//从lpcstr转换。
}
因为重写BSTR内容之前方法COM是[out]参数的规则是不调用sysfreestring。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C语言

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情