CBSTRStream类详解

在处理BSTR字符串时,经常需要一个能够提供基本缓冲支持的类。CBSTRStream类正是为了满足这一需求而设计的,它不仅提供了缓冲功能,还包含了一些有用的数据类型转换函数。这个类并不是_bstr_t类的替代品,而是为了与之互操作而设计的。

使用说明

CBSTRStream类的使用非常简单,只需要使用<<操作符就可以将数据追加到流中。文章末尾的列表将提供更详细的概览。

_bstr_t bstrData(L"somedata"); _bstr_t bstrData2(L"some other data"); GUID guid = /* someguid */; long nData = 3; CBSTRStream bsData; bsData << bstrData << L"TEST" << nData << L"" << bstrData2 << L"" << guid;

在这个示例中,创建了两个_bstr_t对象bstrData和bstrData2,以及一个GUID对象和一个长整型变量nData。然后,创建了一个CBSTRStream对象bsData,并使用<<操作符将这些数据追加到流中。

long nItemId = 1; CBSTRStream bsSelect; bsSelect << L"SELECT It_Name, It_Desc FROM It_Item WHERE It_Id = " << nItemId;

在这个示例中,创建了一个CBSTRStream对象bsSelect,并使用<<操作符构建了一个SQL查询语句。

long nData = 14; long nData2 = 18; long nData3 = 25; CBSTRStream bsData(10, 5); bsData << L"Numbers: " << nData << L", " << nData2; bsData << L", " << nData3;

在这个示例中,创建了一个CBSTRStream对象bsData,并指定了初始缓冲区大小和块大小。然后,使用<<操作符将一些长整型变量追加到流中。

构造函数

CBSTRStream类提供了两个构造函数,允许为流分配器设置分配提示。nInitialBufferSize设置了首次缓冲区分配的大小,而nChunkSize设置了后续缓冲区重新分配时追加的大小。

CBSTRStream(const CBSTRStream& bsSrc, long nInitialBufferSize = 50, long nChunkSize = 50) CBSTRStream(long nInitialBufferSize = 50, long nChunkSize = 50)

操作符重载

CBSTRStream类重载了多个操作符,提供了基本的流支持以及数据类型转换。它们将各自数据类型的字符串表示追加到流中。

CBSTRStream& operator << (const _bstr_t& bstrData) CBSTRStream& operator << (wchar_t* pstr) CBSTRStream& operator << (REFGUID src) CBSTRStream& operator << (long nData) CBSTRStream& operator << (unsigned long nData) CBSTRStream& operator << (int nData) CBSTRStream& operator << (double dValue) CBSTRStream& operator << (const CBSTRStream& bsSrc)

比较两个CBSTRStream对象。

为现有的CBSTRStream对象分配一个新的值。

提取封装的BSTR对象的指针/对象。

操作

CBSTRStream类提供了一些操作,如重置字符串(但保留缓冲区)和获取封装的BSTR的长度。

void reset

重置字符串,但保留缓冲区。

long length const

返回封装的BSTR的长度。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485