CStrBufT 類別
這個類別會針對GetBuffer
現有CStringT
物件提供和ReleaseBuffer
呼叫的自動資源清除。
語法
template<typename TCharType>
class CStrBufT
參數
TCharType
類別的 CStrBufT
字元類型。 可以是下列其中一項:
char
( 適用於 ANSI 字元字串 )wchar_t
(針對 Unicode 字元字串)TCHAR
(適用於 ANSI 和 Unicode 字元字串)
成員
公用 Typedefs
名稱 | 描述 |
---|---|
PCXSTR |
常數位符串的指標。 |
PXSTR |
字串的指標。 |
StringType |
字串類型,其緩衝區是由這個類別範本的特製化所操作。 |
公用建構函式
名稱 | 描述 |
---|---|
CStrBufT::CStrBufT | 字串緩衝區物件的建構函式。 |
公用方法
名稱 | 描述 |
---|---|
CStrBufT::SetLength | 設定相關聯字串物件的字元緩衝區長度。 |
公用運算子
名稱 | 描述 |
---|---|
CStrBufT::operator PCXSTR | const 擷取關聯字串物件的字元緩衝區指標。 |
CStrBufT::operator PXSTR | 擷取關聯字串物件的字元緩衝區指標。 |
公用常數
名稱 | 描述 |
---|---|
CStrBufT::AUTO_LENGTH | 自動判斷發行時字串的新長度。 |
CStrBufT::SET_LENGTH | 在 GetBuffer 時間設定字串對象的長度 |
備註
這個類別是用來取代 GetBuffer 和 ReleaseBuffer 或 GetBufferSetLength 和 ReleaseBuffer
呼叫的包裝函式類別。
主要是設計為協助程序類別, CStrBufT
可讓開發人員使用字串物件的字元緩衝區,而不需擔心呼叫 的方式或時機 ReleaseBuffer
。 這是可能的,因為包裝函式對象在例外狀況或多個結束的程式代碼路徑的情況下自然超出範圍;導致其解構函式釋放字串資源。
需求
標頭: atlsimpstr.h
CStrBufT::AUTO_LENGTH
自動判斷發行時字串的新長度。
static const DWORD AUTO_LENGTH = 0x01;
備註
自動判斷發行時字串的新長度。 字串必須以 Null 結束。
CStrBufT::CStrBufT
建構緩衝區物件。
CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);
參數
str
與緩衝區相關聯的字串物件。 一般而言,開發人員會使用預先定義的 typedefs CStrBuf
(TCHAR variant)、 CStrBufA
(char
variant) 和 CStrBufW
(wchar_t
variant)。
nMinLength
字元緩衝區的最小長度。
dwFlags
判斷字串長度是否自動決定。 可以是下列其中一項:
呼叫 CSimpleStringT::Release 時,會自動判斷字串長度AUTO_LENGTH。 字串必須以 Null 結束。 預設值。
呼叫 CSimpleStringT::GetBuffer 時,會設定SET_LENGTH字串長度。
備註
建立相關聯字串物件的字串緩衝區。 在建構期間, 會呼叫 CSimpleStringT::GetBuffer 或 CSimpleStringT::GetBufferSetLength 。
請注意,複製建構函式是 private
。
CStrBufT::operator PCXSTR
直接存取儲存在相關聯字串物件中的字元做為 C 樣式字串。
operator PCXSTR() const throw();
傳回值
字串數據的字元指標。
備註
呼叫此函式,以傳回字串物件的字元緩衝區指標。 此指標無法變更字串物件的內容。
CStrBufT::operator PXSTR
直接存取儲存在相關聯字串物件中的字元做為 C 樣式字串。
operator PXSTR() throw();
傳回值
字串數據的字元指標。
備註
呼叫此函式,以傳回字串物件的字元緩衝區指標。 開發人員可以使用這個指標來變更字串對象的內容。
CStrBufT::P CXSTR
常數位符串的指標。
typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;
CStrBufT::P XSTR
字串的指標。
typedef CSimpleStringT<TCharType>::PXSTR PXSTR;
CStrBufT::SET_LENGTH
設定字串對象的 GetBuffer
長度。
static const DWORD SET_LENGTH = 0x02;
備註
在 GetBuffer 時間設定字串對象的長度。
判斷建構字串緩衝區物件時,是否呼叫 CSimpleStringT::GetBufferSetLength::GetBufferStringT::GetBufferSetLength。
CStrBufT::SetLength
設定字元緩衝區的長度。
void SetLength(int nLength);
參數
nLength
字串物件之字元緩衝區的新長度。
注意
必須小於或等於 建構函式 CStrBufT
中指定的最小緩衝區長度。
備註
呼叫此函式,以設定緩衝區物件所表示之字串的長度。
CStrBufT::StringType
字串類型,其緩衝區是由這個類別範本的特製化所操作。
typedef CSimpleStringT<TCharType> StringType;
備註
TCharType
是用來特製化類別範本的字元類型。