у меня есть 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?
Задача ещё не решена.
Других решений пока нет …