Questa è una domanda che riguarda principalmente WinAPI RegSetValueEx. Se si guarda la sua descrizione in MSDN here si trova:È necessario evitare le barre nelle stringhe nel registro di Windows?
lpDati [in] I dati da memorizzare.
REG_SZ, la stringa deve essere terminata con null. Con il tipo REG_MULTI_SZ , la stringa deve essere terminata con due caratteri null. Una barra rovesciata deve essere preceduta da un'altra barra rovesciata come carattere di escape . Ad esempio, specificare "C: \\ mydir \\ myfile" per memorizzare la stringa "C: \ mydir \ myfile".
La domanda che ho, ho davvero bisogno di sfuggire alle barre? Perché non l'ho mai fatto prima e ha funzionato perfettamente.
L'escape è per C++, non per il metodo. Quindi, per esempio, se dovessi togliere l'input dell'utente dalla riga di comando, non avresti bisogno di trasformare il testo per avere \\ per tutti i \. Se, comunque, avessi intenzione di usare una stringa letterale nel codice, come "C: \ ..." avresti bisogno del tuo C++ di avere "C: \\ ...". Suppongo che questo sia ciò di cui parlano i dottori. C'è una possibilità che la pagina significhi che in realtà dovresti fare "C: \\\\ ..." (nel qual caso potresti dover trasformare l'input dell'utente) – Corbin
@Corbin :) Beh, questo fa una grande differenza. È molto confuso come lo abbiano inserito nella documentazione. – ahmd0
+1 buona domanda, questa documentazione è davvero bizzarra –