CString::GetBuffer

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)

Index