Dies ist eine Frage, die hauptsächlich WinAPI RegSetValueEx betrifft. Wenn Sie sich die Beschreibung in MSDN here ansehen, finden Sie:Ist es notwendig, Schrägstriche in Strings in der Windows-Registrierung zu entkommen?
lpData [in] Die zu speichernden Daten.
REG_SZ, die Zeichenfolge muss nullterminiert sein. Bei dem Typ REG_MULTI_SZ data muss die Zeichenfolge mit zwei Nullzeichen abgeschlossen werden. Dem Backslash muss ein weiterer Backslash als Escapezeichen vorangestellt werden. Geben Sie beispielsweise "C: \\ mydir \\ myfile" an, um die Zeichenfolge "C: \ mydir \ myfile" zu speichern.
Die Frage, die ich habe, muss ich wirklich Schlitzen entkommen? Weil ich das vorher noch nie gemacht habe und es hat ganz gut funktioniert.
Das Entweichen ist für C++, nicht für die Methode. Wenn Sie also beispielsweise Benutzereingaben von der Befehlszeile wegnehmen würden, müssten Sie den Text nicht in \\ für alle \ transformieren. Wenn Sie jedoch ein Zeichenfolgenliteral wie "C: \ ..." im Code verwenden möchten, benötigen Sie für Ihre C++ - Quelle "C: \\ ...". Ich gehe davon aus, dass die Docs davon sprechen. Es besteht die Möglichkeit, dass die Seite bedeutet, dass Sie tatsächlich "C: \\\\ ..." benötigen (in diesem Fall müssten Sie die Benutzereingabe umwandeln). – Corbin
@Corbin :) Nun, das macht einen großen Unterschied. Es ist sehr verwirrend, wie sie es in die Dokumentation schreiben. – ahmd0
+1 gute Frage, diese Dokumentation ist wirklich bizarr –