Как получить путь $(ProjectDir) в Visual С++ Unit Testing с использованием CppUnitTestFramework?

Мне нужно иметь возможность получить путь к каталогу проекта для моего модульного тестирования, чтобы загрузить некоторые файлы, необходимые для тестирования. Я не хочу жестко программировать его, если структура решения и абсолютные пути будут меняться в будущем.

1 ответ

Хорошо, вот как я это сделал:

  • В моем проекте Properties → Configuration → C/С++ → Preprocessor Я добавил это определение препроцессора 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;

Глупым . в конце было необходимо, чтобы избежать конечной \" в каталоге проекта.

licensed under cc by-sa 3.0 with attribution.