CString參數(shù)用于const void*的理解 收藏 這種做法是不安全的,也是不被建議的用法,你必須完全明白、確認(rèn)該字符串沒(méi)有被修改。 CString 轉(zhuǎn)換到 LPTSTR (char*), 預(yù)定的做法是調(diào)用CString的GetBuffer函數(shù),使用完畢之后一般都要再調(diào)用ReleaseBuffer函數(shù)來(lái)確認(rèn)修改 (某些情況下也有不調(diào)用ReleaseBuffer的,同樣你需要非常明確為什么這么做時(shí)才能這樣子處理,一般應(yīng)用環(huán)境可以不考慮這種情況)。 同時(shí)需要注意的是, 在GetBuffer 和 ReleaseBuffer之間,CString分配了內(nèi)存交由你來(lái)處理,因此不能再調(diào)用其他的CString函數(shù)。 CString 轉(zhuǎn)LPCTSTR: CString cStr; const char *lpctStr=(LPCTSTR)cStr; LPCTSTR轉(zhuǎn)CString: LPCTSTR lpctStr; CString cStr=lpctStr; const void* lpBuf //任意類型指針 CString 可以當(dāng)string用,當(dāng)用于指針參數(shù)時(shí),可自動(dòng)轉(zhuǎn)化為指針 不過(guò)最好加強(qiáng)制類型轉(zhuǎn)化,(不加強(qiáng)制類型轉(zhuǎn)化,有的編譯器可能報(bào)錯(cuò))
|
|
來(lái)自: 開(kāi)始到現(xiàn)在 > 《C 編程》