看板Programming
标 题Re: [问题] BCB中ShellExecute的问题
发信站枫桥驿站 (Wed Jul 23 06:28:32 2008)
转信站ptt!ctu-reader!ctu-gate!news.nctu!newsfeed.nthu!news.cs.nthu!netnews.c
※ 引述《[email protected] (这下糗了.....)》之铭言:
> 我在BCB中要使用ShellExecute...发现了一个档案路径的问题...
> 这是我的执行方式.....
> ShellExecute(NULL, "open", "exec.exe", 参数, NULL, SW_SHOW);
> 其中1.exe这个执行档後面会需要一些参数...这个参数是档案路径....
> 可能是C:\temp.txt, 这个exec.exe会打开temp.txt并且加入一些东西产生成
<略>
路径名的反斜'\' 问题. C 语言一定要注意这点.
只要你发现执行结果奇怪, 而相关参数有档案名称
( 以正斜[Unix]或反斜[MS Windows]作子目录分隔), 你就要考虑C 语言脱逸
符号反斜的影响. 试着将单反斜加倍: C:\\temp.txt 或 C:\\SubDir\\temp.txt
每个反斜都要.
另外, 如果是网路名称路径, 如: \\Server\Path\temp.txt
就要改成 \\\\Server\\Path\\temp.txt ( 前面双反斜变成可怕的4 反斜 ).
以前Unix发展C 语言时, 没有这问题. 因为设计时都搭配系统特性 (Unix用正斜
'/' 当路径分隔). 直到C 语言搬到DOS 下, 才出现这专家常识性的问题.
--
※ Origin: 枫桥驿站<bbs.cs.nthu.edu.tw>
◆ From: tommy @61.229.175.32