LPTSTR GetBuffer ( int nMinBufLength );
โยน ( CMemoryException );
ส่งกลับค่า
ชี้การLPTSTRการบัฟเฟอร์ (ยกเลิกค่า null) อักขระของวัตถุ?
พารามิเตอร์
nMinBufLength
ขนาดต่ำสุดของบัฟเฟอร์อักขระอักขระ ค่านี้ไม่มีช่องว่างสำหรับเทอร์มิเนเตอร์เป็นค่า null?
หมายเหตุ
ส่งกลับตัวชี้ไปที่อักขระภายในบัฟเฟอร์สำหรับวัตถุCString ส่งกลับLPTSTRไม่constและดังนั้นจึง ช่วยให้การปรับเปลี่ยนโดยตรงของเนื้อหาCString?
ถ้าคุณใช้ตัวชี้ที่ส่งกลับโดยGetBufferการเปลี่ยนเนื้อหาสาย คุณต้องเรียกReleaseBufferก่อนที่จะใช้อื่น ๆCStringสมาชิกฟังก์ชันใด ๆ?
อยู่ที่ส่งกลับโดยGetBufferอาจไม่ถูกต้องหลังจากการเรียกไปยังReleaseBufferเนื่องจากการดำเนินงานCStringเพิ่มเติมอาจทำให้บัฟเฟอร์ที่CStringเพื่อที่สามารถจัดสรรใหม่ บัฟเฟอร์จะไม่สามารถจัดสรรใหม่ถ้าคุณไม่สามารถเปลี่ยนแปลงความยาวของCString?
หน่วยความจำบัฟเฟอร์จะถูกเพิ่มโดยอัตโนมัติเมื่อมีทำลายวัตถุCString?
หมายเหตุว่า ถ้าคุณเก็บติดตามของความยาวของสายอักขระด้วยตัวคุณเอง คุณควรไม่ผนวกอักขระ null terminating นอกจากนี้คุณอย่างไรก็ตาม ต้อง ระบุความยาวของสายอักขระสุดท้ายเมื่อคุณปล่อยบัฟเฟอร์ด้วยReleaseBuffer ถ้าคุณผนวกอักขระ null terminating คุณควรส่ง 1 ระยะการReleaseBufferและReleaseBufferจะทำการstrlenบนเพื่อกำหนดความยาวของบัฟเฟอร์?
ตัวอย่าง
ตัวอย่างต่อไปนี้สาธิตการใช้งานCString::GetBuffer?
/ / ตัวอย่าง CString::GetBuffer
S CString ("abcd");
#ifdef _DEBUG
afxDump lt; < "CString s" << s << "\n"
#endif
LPTSTR p = s.GetBuffer (10);
strcpy (p, "Hello"); / / เข้าใช้บัฟเฟอร์ CString โดยตรง
s.ReleaseBuffer ()
#ifdef _DEBUG
afxDump << "CString s" << s << "\n"
#endif
ภาพรวม CString |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCString::GetBufferSetLength, CString::ReleaseBuffer(&N)