Как установить рабочий каталог в "каталог решений" в С++
Я хочу установить текущую директорию в директорию решения/имя конфигурации.
Как мне это сделать?
могу ли я использовать глобальные переменные каким-то образом?
edit: я пытаюсь прочитать файл, а текущий каталог изменяется в середине кода. Я хочу изменить его.
Ответы
Ответ 1
Если ваш текущий каталог меняется, вы, вероятно, должны сохранить свою рабочую директорию при запуске в некоторой переменной, к которой вы можете получить доступ позже, чтобы установить cwd туда. По крайней мере, так я понимаю ваш вопрос.
Для получения cwd this может помочь.
Ответ 2
В Visual Studio 2010:
- Перейдите к свойствам проекта (щелкнув имя проекта в обозревателе решений, затем выберите "Свойства" во всплывающем меню).
- Затем в разделе "Свойства конфигурации/отладка" установите для рабочего каталога значение
$(SolutionDir)$(Configuration)\
.
Полный список доступных макросов (на docs.microsoft.com): Общие макросы для команд и свойств MSBuild
Ответ 3
Вы можете использовать подсистему posix (<direct.h>
) и получить доступ к функциям
_getcwd()/_wgetcwd()
Получает текущий рабочий каталог
_chdir()/_wchdir()
Устанавливает текущий рабочий каталог
Если вам нужен ваш код для перекрестной платформы, вы можете сделать следующее:
#ifdef _WIN32
# include <direct.h>
# define getcwd _getcwd
# define chdir _chrdir
#else
# include <unistd.h>
#endif
и используйте getcwd
и chdir
(без основного подчеркивания).
Ответ 4
Пробовали ли вы использовать переменную окружения $(SolutionDir)?
Что касается этой темы здесь.
Кроме того, мы надеемся, что версия VS не имеет значения, но этот ответ представлен на основе предположения, что платформа VS2005.
Надеюсь, что это поможет.