如何从C ++代码访问$(SolutionDir)宏

时间:2013-11-14 04:57:28

标签: visual-c++ macros

如何从C ++代码访问$(SolutionDir)宏。 我只想将解决方案目录路径作为字符串。这样我就可以在任何计算机上设置我的项目并相应地获取sln目录路径。

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。这里使用$(SolutionDir)给出解决方案目录路径。但是当它作为一个字符串时会出现问题,因为$(SolutionDir)的return语句包含的路径包括没有转义字符的斜杠()。 例如:C:\ TestApp \ 但要用作字符串,它应该是C:\ TestApp \ 也许在设置属性时可以在内部使用它。

答案 1 :(得分:1)

前段时间我有同样的问题(我会记下投票,但这里没有真正的答案)。

我所做的还是定义Preprocesor宏,用c ++ 11可以轻松逃脱转义字符的问题。要做到这一点进入

属性→配置属性→C / C ++→预处理器

存在字段PreprocessorDefinitions,因此您需要添加:

SOLUTION_DIR=R"($(SolutionDir))"

解释R“()”代表c++ string literal所以转义字符没有问题(它们从C ++ 11开始可用)。

从我的用例中,这在Visual Studio 2015和2017中完美运行(也应该在2013年和2012年工作。在2010年和之前不支持Raw String)