String do PCWSTR

0

Witam, mam funkcje w programie która rejestruje go w do automatycznego uruchamiania.

BOOL RegisterProgram(PCWSTR pszAppName, PCWSTR pathToExe, PCWSTR args)
RegisterProgram(L"Nazwa_programu", szPathToExe, L"argumenty" );

W miejscu "argumenty" pasowałoby mi wysyłać do funkcji zawartość stringu z argumentami wpisanymi przez użytkownika. I tu moje pytanie: jak można w łatwy sposób przekonwerterować stringa na PCWSTR (L "argumeny")

Z góry dziękuję za odpowiedz.

2
wstring program = L"Ala";
wstring argumenty = L"ma kota";

RegisterProgram(program.c_str(), szPathToExe, argumenty.c_str());

to wstring jest istotne. inaczej musiałbyś konwertować ANSI do Unicode.
nie rób też takiego przypisania:

PCWSTR str = program.c_str(); // źle

bo szybko się zemści. używaj c_str tylko w wywołaniu funkcji.

0

Ok, a jak będę chciał do L"<tutaj>" wstawić parametry ze stringa? To w jaki sposób można to zrealizować?

1

tzn?

najlepiej używaj wstring i wchar_t* zamiast string i char*. w ten sposób pozbędziesz się kłopotu.

jeśli już koniecznie gdzieś potrzebujesz stringa to można string przekonwertować na wstring tak:

	string s = "Ala";
	wstring ws = wstring(s.begin(), s.end());
0

Dziękuję, rozwiązałem mój problem :)
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1