CSimpleStringT::GetBufferSetLength
傳回指向 CSimpleStringT 物件內部緩衝區的字元,如有需要,截斷或擴大其長度的完全相符。 nLength指定的長度。
PXSTR GetBufferSetLength(
int nLength
);
參數
- nLength
CSimpleStringT 字元緩衝區的實際大小 (以字元為單位)。
傳回值
物件的 (以 null 終止) 字元緩衝區的 PXSTR 指標。
備註
呼叫這個方法會擷取 CSimpleStringT 物件內部緩衝區的指定長度。 傳回的 PXSTR 指標不是 const 所以並不允許 CSimpleStringT 內容的直接修改。
如果您使用 GetBufferSetLength 傳回的指標變更字串內容,呼叫更新 CsimpleStringT內部狀態的 ReleaseBuffer ,在您使用其他任何 CSimpleStringT 方法。
因為其他 CSimpleStringT 作業可能會造成 CSimpleStringT 緩衝區重新配置, GetBufferSetLength 傳回的位址可能不是在呼叫之後 ReleaseBuffer 。 緩衝區,如果沒有變更, CSimpleStringT的長度不會重新配置。
會在終結時,緩衝區會記憶體就會自動釋放 CSimpleStringT 物件。
如果您正在錄製字串長度,不附加結束的 null 字元。 您可以使用 ReleaseBuffer時,,,當您釋放緩衝區必須指定最後的字串長度。 如果您附加至結束的 null 字元,當您呼叫 ReleaseBuffer,傳遞– 1 (預設值)。 ReleaseBuffer的長度與 ReleaseBuffer 將在緩衝區的 strlen 判斷它的長度。
如需繫結參考的詳細資訊,請參閱下列文件:
在 Windows SDK的處理物件存留期透過參考計數。。
在 Windows SDK的實作參考計數。。
在 Windows SDK的管理參考計數規則。
範例
以下範例將說明 CSimpleStringT::GetBufferSetLength 的用法。
CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');
// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.
str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);
需求
標題: atlsimpstr.h