【问题标题】:How to concatenate multiple CString如何连接多个CString
【发布时间】:2011-03-10 16:58:17
【问题描述】:

所有函数都返回 CString,这是一个 MFC 代码,必须以 32 位和 64 位编译。

目前我正在使用

CString sURI = GetURL();
sURI += GetMethod();
sURI += "?";
sURI += GetParameters();

存在任何方式来做同样的事情:

CString sURI = GetURL() + GetMethod() + "?" + GetParameters();

【问题讨论】:

标签: c++ winapi mfc cstring


【解决方案1】:

问题是“?” "const char*" 类型是,并且它的 + 运算符不采用 CString 类型的右手操作数。你必须转换“?”像这样的 CString:

CString sURI = GetURL() + GetMethod() + _T("?") + GetParameters();

【讨论】:

  • _T 将字符或字符串转换为对应的 Unicode,我认为您的意思是 CString("?")
  • 这不是真的。 _T 将字符串转换为适当的字符类型,这取决于项目选项。如果在项目选项中选择 Unicode,它会将字符串转换为 const wchar*,否则返回 const char*。
【解决方案2】:

只要所有这些函数都返回一个CString 对象,那么使用+ 运算符进行连接应该没问题。

否则,请使用CString _T(const char *) 函数来包装您的常规 C 字符串并使其成为 CString。

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 2012-06-27
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多