關於MFC的CString 訪問越界問題

2021-06-27 05:30:25 字數 487 閱讀 6782

1. 很多控制項可能都要使用cstring,比如ctooltipctrl.gettext()

如果我一開始,

m_tooltip.addtool(this, m_str, &rect, tts_alwaystip);

其中 m_str 的長度超過256位元組,注意是位元組,如果是unicode下,那就128 tchar。

當長度超過了256位元組時,gettext()就報錯,這令我相當鬱悶哪!

老mfc很多內部結構存有固定陣列,需要固定長度的。超出長度就會造成陣列越界。

涉及到這些固定陣列的api,msdn又沒好好的說明一下,著實讓人頭頭疼。

雖然說在以前的時間,記憶體相當小,用固定陣列是可以理解,但做這個api的人,你至少也得說明一下吧。

**用了固定陣列,不然越界還要我們自己查。。。

2. 同樣 trace 能處理的最大長度是 512 個 tchar, 即1024 byte.這些都要跟蹤到mfc的**才知道的。真是無語了!。。。

MFC中關於CString 引數傳遞

當定義類介面時,必須確定為成員函式確定引數傳遞約定。現在有一些傳遞和返回 cstring 物件的標準規則。如果遵循作為函式輸入的字串和作為函式輸出的字串中所述的規則,那麼將得到正確而又有效的 作為函式輸入的字串 如果字串是某個函式的輸入,在大多數情況下,最好將該字串函式引數宣告為 lpctstr。在...

MFC的CString的find的使用

名稱 cstring find 在乙個較大的 字元 串中查詢字元或子字串 int find tchar ch const int find lpctstr lpszsub const int find tchar ch,int nstart const int find lpctstr pstr,i...

MFC程式設計之CString類

小石這此總結下cstring的使用,在mfc程式設計中,cstring作為我們常用的類。下面介紹下它 cstring類作為mfc的常用類,當之無愧。可以這樣說,只要是從事mfc開發,基本都會遇到使用cstring類的場合。因為字串的使用比較普遍,而cstring類又提供了對字串的便捷操作,所以它給m...