c ++ - streng til en LPCTSTR

Indlæg af Hanne Mølgaard Plasc

Problem




   Mulig duplikat:

  C ++ std :: string konvertering problem på Windows

  Sådan konverteres std :: streng til LPCSTR?





Jeg vil omdøbe et vindue (WM\_SETTEXT) til noget andet. I har en std :: streng, der indeholder det nye vinduesnavn. Jeg skal konvertere std :: -strengen til 'LPCTSTR', det er fordi SendMessage har brug for navnet i 'LPCTSTR'.


Jeg kan ikke få det til at fungere, kan nogen hjælpe mig med at konvertere en streng til en LPCTSTR?

Bedste reference


Brug c\_str() metoden til std::string. Dette returnerer en C-streng, dvs. en peger til en null-termineret tegnrække.


SendMessage(Handle, WM\_SETTEXT, 0, (LPARAM)str.c\_str());


Dette er fint, hvis du kompilerer til ANSI. Hvis du kompilerer til Unicode, skal du bruge wstring i stedet for string. Hvis det er tilfældet, skal du bare skifte til wstring og opkaldet til SendMessage virker nøjagtigt som beskrevet ovenfor.