如何在c ++中将工作目录设置为"解决方案目录"

lit*_*tuk 15 c++ visual-studio

我想将当前目录设置为解决方案diretory /配置名称.我怎么做?我可以用某种方式使用全局变量吗?

编辑:我正在尝试读取文件,当前目录在代码中间发生变化.我想改回来.

rtu*_*ado 39

在Visual Studio 2010中:

  1. 转到项目属性(在解决方案资源管理器中单击项目名称,然后在弹出菜单上单击属性).
  2. 然后,在Configuration Properties/Debugging下,将Working Directory设置为$(SolutionDir)$(Configuration)\.

  • 这个答案帮助我查找可用宏的列表,这是我在 learn.microsoft.com 上找到的:[MSBuild 命令和属性的常见宏](https://learn.microsoft.com/en-us/cpp/build/参考/构建命令和属性的通用宏)。就我而言:我正在寻找 `$(ProjectDir)\ ` (4认同)

eva*_*rix 5

您尝试过使用环境变量$(SolutionDir)吗?

参考这里的这个线程。

另外,希望 VS 的版本并不重要,但这个答案是基于平台是 VS2005 的假设提供的。


Kit*_*YMG 5

您可以使用 posix 子系统 ( <direct.h>) 并访问功能

_getcwd()/_wgetcwd()获取当前工作目录
_chdir()/_wchdir()设置当前工作目录

如果您需要跨平台的代码,您可以执行以下操作:

#ifdef _WIN32
#  include <direct.h>
#  define getcwd _getcwd
#  define chdir _chrdir
#else
#  include <unistd.h>
#endif
Run Code Online (Sandbox Code Playgroud)

并使用getcwdchdir(不带前导下划线)。


LiM*_*Bei 4

如果当前目录正在更改,您可能应该在启动时将工作目录保存在某个变量中,稍后您可以访问该变量以在该变量中设置 cwd。至少我是这样理解你的问题的。

对于获取 cwd,可能会有所帮助。