# std::string in LPCWSTR



## Gucky (20. Dez 2013)

Hallo liebe Community,

dann testen wir doch mal diese neue Rubrik. 

Da ich denke, Java mittlerweile recht gut zu beherrschen, dachte ich mir mich mal mit C++ zu beschäftigen. Bitte hier keine Diskussion über die Sinnhaftigkeit meiner Entscheidung. 

Ich möchte einen Pfad eingeben lassen und diesen dann auf Gültigkeit überprüfen lassen. Dazu habe ich mir die PathFileExists Funktion ausgesucht. Diese erwartet jedoch einen LPCWSTR. In der API Dokumentation wurde aber ein char* array gezeigt. Also habe ich eine Methode geschrieben, die meinen string in ein array umwandelt. Jetzt sagt mit die PathFileExists Function aber, dass "Das Argument vom Typ ""char*"" ist mit dem Parameter vom Typ ""LPCWSTR"" inkompatibel.

Ich hab jetzt schon echt lange gegooglet, finde aber nichts, was mir weiterhilft.

Weiß einer von euch, wie ich einen std::string in LPCWSTR umwandeln kann?

Das ist mein Code bis jetzt:


```
using namespace std;
string erfordereAusgangspfad(){
	string eingabe;
	while (true){
		cout<<"Bitte geben Sie den Ausgangspfad ein"<<endl;
		cin>>eingabe;
		const int länge = eingabe.length();

		char* zeichen = new char[0];
		stringInArray(eingabe, zeichen);

		if (PathFileExists(zeichen)){
			return eingabe;
		} else {//Ich weiß, das hier könnte auch weg. Ich finde es so schöner
			continue;
		}
	}
}

void stringInArray(string eingabe, char* zeichen){
	zeichen = new char[eingabe.size() + 1];
	strcpy(zeichen, eingabe.c_str());
}
```


----------



## eMmiE (21. Dez 2013)

Falls du mit "std::string" meinst standard-String, dann kann ich dir vllt. weiterhelfen.
Man findet ab und zu Hilfe auf "stackoverflow.com"
Da hat jemand was ähnliches gefragt und die kamen anscheinend zu der Übereinstimmung, dass da ein L davor muss: 
	
	
	
	





```
LPCWSTR a = L"TestWindow";
```

So kann man anscheinend da was umwandeln

Ich persönlich verstehe nur rudimentär Java und ein bisschen google und englisch ist auch nicht meine liebste Sprache, also... probier mal

Gruß eMmiE

P.S.: Link: stackoverflow-LPCWSTR


----------



## Gucky (21. Dez 2013)

Danke für deine Hilfe. Für dieses L gibt es sogar ein bestimmtes Makro. Darauf bin ich auch schon gestoßen, habe das aber für sinnlos gehalten.  meine IDE hat mir immer gesagt, der Bezeichner leingabe sei nicht definiert.

Mit diesem L experimentiere ich noch ein bisschen rum. Danke


----------



## Gucky (22. Dez 2013)

Dieses L funktioniert leider nur bei festen Strings, die ich direkt in den Quellcode schreibe (
	
	
	
	





```
L"test"
```
). Bei Variablen funktioniert es schon nicht mehr.


----------

