如何将存储在变量中的路径括在引号中?

时间:2009-07-29 16:38:15

标签: c++ visual-c++

让我们有一条路径

C:\Program Files\TestFolder

这条路径我以编程方式存储并存储在一个可变的dirpath(例如)中 现在我已经连接了字符串

dirpath=getInstallationpath()+"\\ test.dll /codebase /tlb";

然后dirpath成为

C:\Program Files\TestFolder\test.dll /codebase /tlb

但我的问题是我用双引号括起来的路径

"C:\Program Files\TestFolder\test.dll"

因为当我直接将dirpath作为regasm的命令行传递给CreateProcess()时,它应该只接受C:\ Program因为空格。所以我尝试了许多特技,如

dirpath="\ "+getInstallationPath()+" \test.dll /codebase /tlb "
像这样,但没有奏效......

所以请在这方面给我打气......

提前致谢...

3 个答案:

答案 0 :(得分:2)

我相信你忘了第二个\“在test.dll之后

答案 1 :(得分:2)

我可以看到该行的两个问题。首先,您需要转义test.dll之前的反斜杠。其次,将路径包装在引号中需要您也转义引号。

完成这些更改后,它应如下所示:

dirpath="\""+getInstallationPath()+"\\test.dll\" /codebase /tlb "

修改

根据Martin的要求修正了作业。忘了第一个字符串的右引号!

答案 2 :(得分:2)

对于构建复杂字符串,使用字符串流通常更容易(也更有效)。

// Note the character(") and the character(\)
// will need to be escaped when used inside a string
std::stringstream  stuff;
suff << "\"" 
     << getInstallationPath() << "\\test.dll" 
     << "\""
     << "/codebase /tlb";
                                                //
dirpath = stuff.str();