关于BSTR的使用

ink8852 2003-07-18 10:59:14
初识COM,问题多多,苦于手头资料不够。
关于CComBSTR、BSTR、CcomVariant及_bstr_t的概念、使用以及它们之间的关系是什么,那伟大虾能够详解一下,或者告诉我哪里有,我自己去看也可以!多谢~~~~
...全文
148 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ink8852 2003-08-07
  • 打赏
  • 举报
回复
谢谢大家!
navychen 2003-07-22
  • 打赏
  • 举报
回复
我觉得BSTR就是个指针, 要手工分配释放内存。其他的都是类,可以自动构造释放。
wqf2 2003-07-22
  • 打赏
  • 举报
回复
xtuzi(雨人) 说得不对!!!而lcp(dupi) ,zhp80(zhp80) ,Analyst()都回答得很好,楼主可以结贴了。
ailanrenxfl 2003-07-22
  • 打赏
  • 举报
回复
你用“BSTR”google一下,有好几篇讲的很好
zhp80 2003-07-18
  • 打赏
  • 举报
回复
BSTR = CComBSTR.Copy();
BSTR = CComBSTR.Detach( );

CComBSTR = BSTR;
CComBSTR.AppendBSTR(BSTR);
CComBSTR.Attach(BSTR);

_bstr_t = BSTR;
_bstr_t.Assign(BSTR); ---.net
_bstr_t.Attach(BSTR); ---.net

BSTR = _bstr_t.Copy();
BSTR = _bstr_t.Detach( ); ---.net

CString = BSTR;

BSTR = CString.AllocSysString();
BSTR = CString.SetSysString(&BSTR);

CComVariant = BSTR;

if (CComVariant.vt == VT_BSTR) BSTR = CComVariant.bstrVal;

BSTR WINAPI

SysAllocString
SysAllocStringByteLen
SysReAllocString
SysAllocStringLen
SysReAllocStringLen
SysFreeString

lcp 2003-07-18
  • 打赏
  • 举报
回复
BSTR是一种文本数据类型,是包含长度前缀的OLECHAR字符串。
CComBSTR封装了BSTR,包括初始化,释放,拷贝,类型转化等。

有时,我们需要在对数据类型一无所知的情况下向它传递参数,这就要用到:
Variant,包含了数据类型和数据的值两个域;
CComVariant封装了Variant数据类型和相关的操作。
其实挺简单的,你把Variant看作是自己指定了类型的void就好了。
xtuzi 2003-07-18
  • 打赏
  • 举报
回复
BSTR 等同于WCHAR类型的字符串
Analyst 2003-07-18
  • 打赏
  • 举报
回复
BSTR是原始类型,CComBSTR和_bstr_t是BSTR的C++封装类。_variant_t和CcomVariant是VARIANT的封装类。
另外_bstr_t要比CComBSTR好用。
FAICHEN 2003-07-18
  • 打赏
  • 举报
回复
可以转换
common_man 2003-07-18
  • 打赏
  • 举报
回复
http://www.pcvc.net/category/content.asp?sendid=8
xwsn007 2003-07-18
  • 打赏
  • 举报
回复
up

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧