2013-03-14 2 views
8

В Visual C++, у меня естьСтечение LPWSTR строк

LPWSTR mystring; 

, который уже определен где-то в коде.

Я хочу, чтобы создать новый LPWSTR содержащий:

"hello " + mystring + " blablabla"  (i.e. a concatenation) 

я получаю с умом такой простой вещью (конкатенация)! Большое спасибо заранее, я потерян!

+1

Как разработчик Unix, что 'LPWSTR'!?!?! Downvoter, совершенно неуместно. –

+0

@AlexChamberlain Это широкий тип строки (AFAIK, Unix dev здесь тоже). Еще один безмозглый typedef от Win (cr) API. – 2013-03-14 22:13:28

+0

'typedef wchar_t * LPWSTR, * PWSTR;' –

ответ

14

C++ путь:

std::wstring mywstring(mystring); 
std::wstring concatted_stdstr = L"hello " + mywstring + L" blah"; 
LPCWSTR concatted = concatted_stdstr.c_str(); 
+0

спасибо большое H2CO3! – Basj

+4

Одна модификация будет заключаться в том, что 'concatted' должен быть' LPCWSTR'. – chris

4

Вы можете использовать StringCchCatW функция

+1

Это не C++, или, конечно же, не должно быть. –

+1

Ewwwwwwww! Зачем? –

+0

@Captain Он уже имеет дело с 'LPWSTR', так почему бы и нет? Таким образом, он избегает преобразования своего желаемого типа в другой тип, просто чтобы манипулировать им, прежде чем преобразовывать его обратно. Я бы добавил +1, если бы не «Требуется» (что не подразумевает другого решения). – JBentley

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