Esta es una pregunta principalmente relacionada con WinAPI RegSetValueEx. Si nos fijamos en su descripción en MSDN here, encontrará:¿Es necesario escabullirse en cadenas en el Registro de Windows?
lpData [in] Los datos que se almacenarán.
REG_SZ, la cadena debe estar terminada en nulo. Con el tipo de datos REG_MULTI_SZ , la cadena debe terminarse con dos caracteres nulos. Una barra invertida debe estar precedida por otra barra invertida como carácter de escape . Por ejemplo, especifique "C: \\ mydir \\ myfile" para almacenar la cadena "C: \ mydir \ myfile".
La pregunta que tengo, ¿realmente necesito escapar de las barras? Porque nunca he hecho eso antes y funcionó perfectamente bien.
El escape es para C++, no para el método. Entonces, por ejemplo, si fuera a quitar la entrada del usuario de la línea de comando, no necesitaría transformar el texto para tener \\ para todos los \. Sin embargo, si fuera a usar un literal de cadena en el código, como "C: \ ...", necesitaría que su fuente C++ tenga "C: \\ ...". Supongo que esto es de lo que están hablando los documentos. Existe la posibilidad de que la página signifique que realmente tendría que hacer "C: \\\\ ..." (en cuyo caso podría tener que transformar la entrada del usuario) – Corbin
@ Corbin :) Bueno, eso hace una gran diferencia. Es muy confuso cómo lo ponen en la documentación. – ahmd0
+1 buena pregunta, esta documentación es realmente extraña –