2013-03-14 15 views
8

In Visual C++, ho unconcatenazione di stringhe LPWSTR

LPWSTR mystring; 

che è già stato definito da qualche altra parte nel codice.

voglio creare un nuovo LPWSTR contenente:

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

sto diventando pazzo di una cosa così semplice (concatenamento)! Grazie mille in anticipo, mi sono perso!

+1

Come sviluppatore di Unix, che cosa è 'LPWSTR'!?!?! Downvoter, totalmente inappropriato. –

+0

@AlexChamberlain È un tipo di stringa ampia (AFAIK, Unix dev anche qui). Un altro typedef senza cervello da Win (cr) API. –

+0

'typedef wchar_t * LPWSTR, * PWSTR;' –

risposta

14

Il modo C++:

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

grazie mille H2CO3! – Basj

+4

Una modifica sarebbe che 'concated' deve essere un' LPCWSTR'. – chris

4

È possibile utilizzare la funzione StringCchCatW

+1

Questo non è C++, o certamente non dovrebbe essere. –

+1

Ewwwwwwww! Perché? –

+0

@Captain Ha già a che fare con 'LPWSTR', quindi perché no? In questo modo, evita di convertire il suo tipo desiderato in un tipo diverso solo per manipolarlo, prima di convertirlo nuovamente. Vorrei +1 se non fosse per "Hai bisogno" (che non implica altra soluzione). – JBentley