String do PCWSTR

String do PCWSTR
K2
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:22
0

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

Kopiuj
BOOL RegisterProgram(PCWSTR pszAppName, PCWSTR pathToExe, PCWSTR args)
Kopiuj
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.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 10 godzin
2
Kopiuj
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:

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

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

edytowany 1x, ostatnio: Azarien
K2
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:22
0

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

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 10 godzin
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:

Kopiuj
	string s = "Ala";
	wstring ws = wstring(s.begin(), s.end());
K2
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:22
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.