6

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

4

2 回答 2

9

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

我所做的还定义了 Preprocesor 宏,使用 c++11 可以轻松解决转义字符的问题。为此,请进入

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

有字段 PreprocessorDefinitions 所以你需要在那里添加:

SOLUTION_DIR=R"($(SolutionDir))"

为了解释 R"()" 代表c++ 字符串文字,因此转义字符不会有问题(它们从 C++11 开始可用)。

从我的用例来看,这在 Visual Studio 2015 和 2017 中完美运行(也应该在 2013 和 2012 年工作。在 2010 年及之前不支持原始字符串)

于 2018-01-25T13:43:42.980 回答
1

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

于 2013-11-26T06:50:11.707 回答