MFC中關於CString 引數傳遞

2022-09-02 07:30:16 字數 931 閱讀 5528

當定義類介面時,必須確定為成員函式確定引數傳遞約定。現在有一些傳遞和返回 cstring 物件的標準規則。如果遵循作為函式輸入的字串和作為函式輸出的字串中所述的規則,那麼將得到正確而又有效的**。

《作為函式輸入的字串》

如果字串是某個函式的輸入,在大多數情況下,最好將該字串函式引數宣告為 lpctstr。在函式中根據需要使用建構函式和賦值運算子將其轉換為 cstring 物件。如果乙個函式將要更改字串的內容,那麼將引數宣告為非常數的 cstring 引用 (cstring&)。

《作為函式輸出的字串》

通常情況下,可以從函式返回 cstring 物件,因為 cstring 物件遵循基元型別那樣的值語義。要返回唯讀字串,則使用常數 cstring 引用 (const cstring&)。以下示例闡釋 cstring 引數的使用方法和返回型別:

class cname : public cobject

void setdata( lpctstr fn, const char mi, lpctstr ln )

void getdata( cstring& cfn, char mi, cstring& cln )

cstring getlastname()

};...

cname name;

cstring last, first;

tchar middle;

name.setdata( "john", 'q', "public" );

assert( name.getlastname() == "public" );

name.getdata( first, middle, last );

assert( ( first == "john" ) && ( last == "public" ) );

...

關於MFC的CString 訪問越界問題

1.很多控制項可能都要使用cstring,比如ctooltipctrl.gettext 如果我一開始,m tooltip.addtool this,m str,rect,tts alwaystip 其中 m str 的長度超過256位元組,注意是位元組,如果是unicode下,那就128 tchar...

MFC中CString和string的轉換問題

說在前面的話 利用mfc進行程式設計時,我們從對話方塊中利用getwindowtext得到的字串是cstring型別,cstring是屬於mfc的類。而一些標準c c 庫函式是不能直接對cstring型別進行操作的,所以我們經常遇到將cstring型別轉化char 等等其他資料型別的情況。這裡總結備...

MFC中 CString型 轉到 int型

兩種方法可以用 1 可以為edit控制項關聯乙個int型的變數,然後通過使用updatedata函式來更新資料。2 直接用atoi函式 cstring str 12345 int a atoi str 補充 我知道你的問題所在了,vs2008預設的編碼方式是unicode,unicode下不能用at...