是否有必要在Windows注册表中转义字符串中的斜杠?

ahm*_*md0 5 c++ registry winapi

这是一个主要涉及WinAPI RegSetValueEx的问题.如果您在MSDN中查看其描述,您会发现:

lpData [in]要存储的数据.

REG_SZ,该字符串必须以空值终止.对于REG_MULTI_SZ数据类型,字符串必须以两个空字符终止.必须在反斜杠前面加上另一个反斜杠作为转义字符.例如,指定"C:\\ mydir \\ myfile"以存储字符串"C:\ mydir\myfile".

我有这个问题,我真的需要逃避斜线吗?因为我之前从未这样做过,所以它完美无缺.

Dav*_*nan 8

这确实是文档错误.你不需要在这里转义反斜杠.您发送到此API的确切字符串将存储在注册表中.不执行反斜杠处理.

现在,在C和C++中你需要转义字符串文字中的某些字符,但这与Win32 API文档无关.对于特定语言的目标代码转换的源代码来说,这是一个问题,并且超出了本文档的范围.