我需要能够检索单元测试的项目目录路径,以便加载测试所需的一些文件.如果解决方案结构和绝对路径将来发生变化,我不想对其进行硬编码.
好的,我就是这样做的:
在我的项目属性 - >配置 - > C/C++ - >预处理器中,我添加了这个预处理器定义 UNITTESTPRJ="$(ProjectDir)."
然后在我的cpp文件中我做了:
#define STRINGIFY(x) #x
#define EXPAND(x) STRINGIFY(x)
string s = EXPAND(UNITTESTPRJ);
s.erase(0, 1); // erase the first quote
s.erase(s.size() - 2); // erase the last quote and the dot
string my_project_dir = s;
Run Code Online (Sandbox Code Playgroud)
最后的愚蠢.是必要的,以逃避\"项目目录中的尾随.