JA hatte ich
Hab in fehler schon behoben, war eh simpel .. ich war nur zu blind dafür
Jetzt stellt sich mir die frage, wie ich aus pwstrPath den Pfad rausbekomme ... Ich sehe ihn zwar im debugger neben der adresse stehen, weiß aber nicht, wie ich diesen jetzt "auslesen" kann
Das is ja n pointer auf nen wide_char, aber wie krieg ich den jetzt, weil mit einfachen chasten funktiert es nicht
Edit: Nach langem googeln habe ich jetzt eine lösung gefunden
Ich habe es jetzt so gelöst:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
PWSTR pwstrPath;
if(SHGetKnownFolderPath(FOLDERID_RoamingAppData,0,NULL,&pwstrPath) != S_OK) //Frage den Pfad für den Roaming Ordner ab
cout << "ERROR";
else
cout << "Roaming Ordner gefunden " << endl;
char* c; //Variable zum speichern des Pfades
int count = 0; //Größe des Pfades
count = WideCharToMultiByte(CP_ACP, 0, pwstrPath, -1, 0, 0, NULL, NULL); //Liefert die Göse des Pfades zurück
if(count > 0)
{
c = new char[count + 1];
WideCharToMultiByte(CP_ACP, 0, pwstrPath, count, c, count + 1 , NULL, NULL); //Liest den Pfad in die Variable c ein
c[count] = '\0'; //Ende des Chars
cout << "Pfad: " << c << endl;
}
else
cout << "Konnte die Größe des Pfades nicht ermitteln\n";
|