字符串文字作为VS 2012上的环境变量

时间:2012-10-24 02:49:02

标签: c++ macros visual-studio-2005 visual-studio-2012

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

Build_Ver, From_Build_Server=""3.1.1234""

在上述情况下,Build_Ver是宏,其值为From_Build_Server=""3.1.1234""。请注意,在VS2005的情况下,两对双引号是必需的。如果仅使用一对双引号,则3.1.1234将宏值视为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.

如果我只使用1对双引号,它适用于VS 2012但在VS 2005上有效。有没有办法让它在VS 2005和VS 2012上同时工作?

0 个答案:

没有答案