当前位置: 代码迷 >> VC/MFC >> 怎么把std:string类型变量传入Ctring&类型的形参内
  详细解决方案

怎么把std:string类型变量传入Ctring&类型的形参内

热度:113   发布时间:2016-05-02 03:49:24.0
如何把std::string类型变量传入Ctring&类型的形参内?
假如这里只有一条函数: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传入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)

  相关解决方案