2010-07-01 2 views
1

Все функции возвращают CString, это код MFC и должны скомпилировать в 32 & 64 бита.Как конкатенировать несколько CString

В настоящее время я использую

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

Exists любой способ сделать то же самое, как:

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

Вы попробовали? Какие (если есть) ошибки компилятора вы получили? –

+0

Вы пробовали? http://msdn.microsoft.com/en-us/library/72b2swax.aspx выглядит так, как должно работать ... – Cogwheel

ответ

3

Пока все эти функции возвращают объект CString , то должно быть хорошо использовать оператора + для conca tenation.

В противном случае используйте функцию CString _T(const char *), чтобы обернуть ваши обычные строки C и сделать их CString.

4

Проблема в том, что "?" типа «const char *» is, а его оператор + не принимает правый операнд типа CString. Вам нужно преобразовать «?» до CString следующим образом:

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

_T преобразует символ или строку в его юникодную копию, я думаю, вы имели в виду CString ("?") – 8bitwide

+3

Это неправда. _T преобразует строку в соответствующий тип символа, который зависит от параметров проекта. Если вы выбираете Unicode в параметрах проекта, он преобразует строку в const wchar *, в противном случае она возвращает const char *. –

Смежные вопросы