2013-03-14 6 views
8

W Visual C++, mamPowiązanie LPWSTR ciągów

LPWSTR mystring; 

który jest już zdefiniowany gdzieś w kodzie.

Chcę utworzyć nowy LPWSTR zawierającą:

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

Dostaję szału taka prosta sprawa (konkatenacji)! Wielkie dzięki, jestem zagubiony!

+1

Jako deweloper Unix, co jest 'LPWSTR'!?!?! Downvoter, całkowicie niewłaściwe. –

+0

@AlexChamberlain Jest to typ o szerokim łańcuchu znaków (AFAIK, również tutaj Unix). Kolejny bezmyślny typedef z Win (cr) API. –

+0

'typedef wchar_t * LPWSTR, * PWSTR;' –

Odpowiedz

14

C++ sposób:

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

wielkie dzięki H2CO3! – Basj

+4

Jedną z modyfikacji byłoby, że 'concatted' musi być' LPCWSTR'. – chris

4

Można użyć StringCchCatW funkcja

+1

To nie jest C++, a na pewno nie powinno. –

+1

Ewwwwwwww! Czemu? –

+0

@Captain On ma już do czynienia z 'LPWSTR', więc czemu nie? W ten sposób unika on przekształcania pożądanego typu w inny typ, tylko po to, aby nim manipulować, przed ponownym przekształceniem go z powrotem. Dałbym +1, gdyby nie "Potrzebujesz" (co nie oznacza żadnego innego rozwiązania). – JBentley