改变当前的工作目录VS13?

正如本文所述,当我debugging我的SDL程序的工作目录是相对于.vcproj而不是.exe(它应该是IMO)

所以我想知道如果有反正我可以改变这一点,所以当我按F5path将相对于.exe而不是.vcproj? 目前(相对容易)的解决方法,我只是打开文件夹,并从那里启动程序,但我宁愿只是按F5。

对您的问题的天真答案是,您可以将调试配置属性中的工作目录选项设置为$(TargetDir) 。 默认设置是$(ProjectDir) ,默认情况下项目目录不是可执行文件的输出位置。 不过,我不建议你选择这个选项,正如我在下面解释的那样。

你试图以错误的方式解决这个问题。 你的根本问题是你假定工作目录与包含可执行文件的目录相同。 没有理由这样做,你不应该依赖它。 你知道这些文件与可执行文件在同一个目录下,所以你应该看看那里,而不是工作目录,有时候,恰好与可执行目录一样。

所以,而不是依赖进程的调用者设置你喜欢的工作目录,使你的程序独立于工作目录。 您声明您希望使用与可执行文件目录相关的文件。 所以有答案。 使用包含可执行文件的目录作为基础,构建文件的完整路径。

如果您需要查找可执行文件的位置,请调用GetmoduleeFileName() ,并删除文件名。 你剩下的是包含你的可执行文件的目录。 将其与您的文件的相对路径相结合,您的代码现在独立于工作目录。