双反斜杠不起作用?
Posted
技术标签:
【中文标题】双反斜杠不起作用?【英文标题】:Double backslash not work? 【发布时间】:2010-10-18 06:24:38 【问题描述】:有人知道为什么某些 Windows XP 安装不会评估带有双反斜杠的路径吗?
在某些 XP 上发现错误(相同的版本、补丁、未知的更多详细信息)。在大多数情况下一切正常,在某些 PC 上以下不起作用:
如果路径包含两个反斜杠,例如 C:\\test\hello.txt
,则使用 RegEnumKeyEx、fopen 等函数查询路径(注册表或文件夹)将失败。
strPath = "\SOFTWARE\Microsoft\Windows\Currentversion\run" // works
strPath = "\SOFTWARE\Microsoft\Windows\Currentversion\\run" // doesn't work
是否有一些政策选项或设置会影响它?
欢迎任何帮助, RM
【问题讨论】:
【参考方案1】:可能完全不相关,但使用 C/C++(以及其他语言)-
"c:\\\\test\hello.txt"
可以,但"c:\test\hello.txt"
不行(因为\t
被解析为制表符,所以你得到的名字并不真正存在)。
当两个反斜杠不存在时,是否有可能发生故障,而当它们存在时,事情就正常了?
【讨论】:
不,语法是正确的。我的意思是当语法中有四个反斜杠时它不起作用,导致实际字符串中有两个反斜杠。当有两个反斜杠(导致实际字符串中有一个反斜杠)时,它确实有效【参考方案2】:你为什么不简单地修改路径在使用前只有一个\?
【讨论】:
这不是我做不到,而是要知道为什么会这样。这没有道理。我过去在很多代码中也使用过它,所以很高兴知道以上是关于双反斜杠不起作用?的主要内容,如果未能解决你的问题,请参考以下文章