VS2005アプリケーションがあります。構築環境に文字列リテラルを取得するために、ユーザー定義マクロがプロパティシートで定義されています。例えば -
Build_Ver, From_Build_Server=""3.1.1234""
上記の場合、Build_Ver
はマクロであり、その値はFrom_Build_Server=""3.1.1234""
です。VS2005の場合、2組の二重引用符が必要であることに注意してください。二重引用符のペアを1つだけ使用する場合、マクロ値はと見なされ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で機能しますが、VS2005では機能しません。VS2005とVS2012の両方で機能させる方法はありますか?