路径中"\\"的意义是什么?

thinkperson_x202 2012-08-27 05:34:18
Time Elapsed 00:00:01.07
3> All outputs are up-to-date.
3>ManifestResourceCompile:
3> All outputs are up-to-date.
3>LINK : fatal error LNK1168: cannot open F:\Office\Trunk\__Out\Pro Debug\Bin\\OfficeInfo.dll for writing

这是我在编译一个dll工程的时候,
vs2010给我的提示信息,但我将下面的地址复制到地址栏:
F:\Office\Trunk\__Out\Pro Debug\Bin\\OfficeInfo.dll
提示说根本就不存在这样的路径。


路径中"\\"的意义是什么?有什么特殊意义吗?为什么会提示路径不存在?
...全文
1027 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinkperson_x202 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

在工程文件的输出路径F:\Office\Trunk\__Out\Pro Debug\Bin\ 改为 F:\Office\Trunk\__Out\Pro Debug\Bin 即可, 你的IDE好像自己添加了一个'\'
[/Quote]
你说的有可能,但我使用的都是ide的默认配置,
其实这个错误提示只是说我现在不能写,
我看了一下,确实有调试进程在使用这个dll,
所以编译通不过,
但是如果我把这个调试进程kill掉,就可以正常写了,
也就不会出现上面的错误提示了,
所以不用怀疑路径中有“\\”是不是ide的错误或者是我的错误,
这些可能基本可以排除,
我现在最疑惑的是:这个双斜杠到底的作用是什么?

(刚才引用成4楼的了,不好意思)
thinkperson_x202 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

"\\"就是"\",用双斜杠是避免转义符

比如:如果你输入"a\djjd" 程序会认为你只输入了 "adjjd";
只有当"a\djjd" 程序会认为你只输入了 "a\djjd".

code 如下:
std::cout << "a\djdj" << std::endl;
std::cout << "a\\djdj" << std::endl;
……
[/Quote]

你说的有可能,但我使用的都是ide的默认配置,
其实这个错误提示只是说我现在不能写,
我看了一下,确实有调试进程在使用这个dll,
所以编译通不过,
但是如果我把这个调试进程kill掉,就可以正常写了,
也就不会出现上面的错误提示了,
所以不用怀疑路径中有“\\”是不是ide的错误或者是我的错误,
这些可能基本可以排除,
我现在最疑惑的是:这个双斜杠到底的作用是什么?
liaoqi127 2012-08-27
  • 打赏
  • 举报
回复
是不是你的dll输出路径设置错了。。。
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

在工程文件的输出路径F:\Office\Trunk\__Out\Pro Debug\Bin\ 改为 F:\Office\Trunk\__Out\Pro Debug\Bin 即可, 你的IDE好像自己添加了一个'\'
[/Quote]

很像...可能是你多加了..除了转义应该也没别的意思了
franzhong 2012-08-27
  • 打赏
  • 举报
回复
可能是兼容性考虑
xingfeng2510 2012-08-27
  • 打赏
  • 举报
回复
windows系统的地址栏能够识别单反斜杠"\",而不能识别双反斜杠"\\",这是系统文件系统自身的约定,路径层次使用“\”区分而不是使用“\\”来区分:
所以F:\Office\Trunk\__Out\Pro Debug\Bin\\OfficeInfo.dll这样是不正确的。
而在程序中,字符串中的“\\”主要是为了转义,“\\”转义后被理解为“\”,“\”才能够被操作系统文件系统所理解,比如用字符串表示上述路径:“F:\\Office\\Trunk\\__Out\\Pro Debug\\Bin\\OfficeIn可以fo.dll”,同理,如果想要表示“\\”,可以写作“\\\\”。
mujiok2003 2012-08-27
  • 打赏
  • 举报
回复
在工程文件的输出路径F:\Office\Trunk\__Out\Pro Debug\Bin\ 改为 F:\Office\Trunk\__Out\Pro Debug\Bin 即可, 你的IDE好像自己添加了一个'\'
thinkperson_x202 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

"\\"就是"\",用双斜杠是避免转义符

比如:如果你输入"a\djjd" 程序会认为你只输入了 "adjjd";
只有当"a\djjd" 程序会认为你只输入了 "a\djjd".

code 如下:
std::cout << "a\djdj" << std::endl;
std::cout << "a\\djdj" << std::endl;

结果:
adjdj
a\……
[/Quote]

如果改成单斜杠,路径则是正确的,
但系统为什么要写成双斜杠呢?
还有,我发现在有的程序需要生成临时文件时,临时文件的路径也是类似这种形式,
为什么要这样用?
有什么说法吗?
smartsecuri 2012-08-27
  • 打赏
  • 举报
回复
改成单斜杠,那个文件存在吗?
wangqinghao 2012-08-27
  • 打赏
  • 举报
回复
"\\"就是"\",用双斜杠是避免转义符

比如:如果你输入"a\djjd" 程序会认为你只输入了 "adjjd";
只有当"a\djjd" 程序会认为你只输入了 "a\djjd".

code 如下:
std::cout << "a\djdj" << std::endl;
std::cout << "a\\djdj" << std::endl;

结果:
adjdj
a\djdj
thinkperson_x202 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
Time Elapsed 00:00:01.07
3> All outputs are up-to-date.
3>ManifestResourceCompile:
3> All outputs are up-to-date.
3>LINK : fatal error LNK1168: cannot open F:\Office\Trunk\__Out\Pro Debug\Bin\\O……
[/Quote]
这个“\\”不是在程序中为拼接而进行的转义,
而是实际的路径中存在“\\”
nice_cxf 2012-08-27
  • 打赏
  • 举报
回复
windows下,\\和\等效,大概是为了兼容性,比如目录名有的最后有\,有的没有
zhaoZero41 2012-08-27
  • 打赏
  • 举报
回复
"\\"就是"\",用双斜杠是避免转义符

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧