【发布时间】:2011-01-27 10:56:25
【问题描述】:
我想将当前目录设置为解决方案目录/配置名称。我怎么做?我可以以某种方式使用全局变量吗?
我正在尝试读取一个文件,并且当前目录在代码中间发生了变化。我想改回来。
【问题讨论】:
标签: c++ visual-studio
我想将当前目录设置为解决方案目录/配置名称。我怎么做?我可以以某种方式使用全局变量吗?
我正在尝试读取一个文件,并且当前目录在代码中间发生了变化。我想改回来。
【问题讨论】:
标签: c++ visual-studio
在 Visual Studio 2010 中:
$(SolutionDir)$(Configuration)\。可用宏的完整列表(在 docs.microsoft.com 上):Common macros for MSBuild commands and properties
【讨论】:
The working directory you entered does not exist。即使我保存它,我也会得到The working directory does not exist: '...\bin\Debug\$(SolutionDir)$(Configuration)\'.
$(ProjectDir)\
您可以使用 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(不带前导下划线)。
【讨论】:
【讨论】:
如果您的当前目录正在更改,您可能应该在启动时将工作目录保存在某个变量中,您可以稍后访问以将 cwd 设置回那里。至少我是这样理解你的问题的。
为了获得 cwd,this 可能会有所帮助。
【讨论】:
对于 Visual Studio 目的(包括标头等),您可以使用此处列出的 $(ProjectDir) 或 $(SolutionDir) 之类的宏:VS macro list
要读取应用程序代码中的文件,请使用 Windows API 函数 GetCurrentDirectory,它会检索您的 进程 目录的路径。编译后的代码可能独立于项目而存在,因此相对于进程 (exe) 引用数据文件的路径是有意义的。
似乎问题的作者询问了第二项,而其他人则回答了第一项。
【讨论】: