假如这里只有一条函数:void GetLBText( int nIndex, CString& rString ) const;要求传入CString&类型,是否有办法把std::string类型的变量传入呢?如何实现?
------解决思路----------------------
如果想直接用std::string传入GetLBText等函数是不可能的,除非你全部去重写MFC,所以MFC下建议都使用CString,QT下用QString。 如果要相互转换,也不困难:
CString转成std::string:
CString cs("Hello");
std::string s((LPCTSTR)cs);
std::string转成CString:
std::string s("Hello");
CString cs(s.c_str());
除非真有需要,否则应尽量就都用CString,减少不必要的麻烦
------解决思路----------------------
std::string s((LPCTSTR)cs);
有些不太准确,毕竟std::string不能处理宽字符,应该用std::string s((LPCSTR)cs),或者干脆std::string s(cs)