0

我有一个VS 2005应用程序。用户定义的宏在属性表中定义,以将字符串文字输入构建环境。例如 -

Build_Ver, From_Build_Server=""3.1.1234""

在上述情况下,Build_Ver是宏,它的值是From_Build_Server=""3.1.1234""。请注意,在 VS2005 的情况下,两对双引号是必需的。如果仅使用一对双引号,则宏值被视为3.1.1234for From_Build_Server

// /D "From_Build_Server=""3.1.1234"""

std::string str(From_Build_Server);

// works on VS 2005 as the value is "3.1.1234". It strips away 1 pair of "" 
// quotes.

当试图在VS 2012上复制相同的内容时,它会做一些不同的事情。对于同一个宏,它给/D "From_Build_Server=\"\"3.1.1234\"\""环境带来了 。

std::string str(From_Build_Server);  // Fails on VS 2012 as the value is 
                                     // ""3.1.1234"". Not stripping by default.

如果我只使用一对双引号,它可以在 VS 2012 上工作,但在 VS 2005 上会中断。有没有办法让它在 VS 2005 和 VS 2012 上都工作?

4

0 回答 0