1

我有一个使用 Visual Stuidos 构建的 C++ 程序。它必须从 .config 文件中读取一些变量。我注意到当我从 VS 运行程序时(即我打开 VS 解决方案并按下“不调试启动”按钮),它找不到 .config 文件,除非它位于“发布”或“调试”目录中。但是,我希望能够从 VS 解决方案运行程序,同时将 .config 文件与 .sln 文件保存在同一目录中。有没有办法可以将 .config 文件的路径设置到这个目录,也许在源代码的某个地方?

谢谢。

4

3 回答 3

3

我将利用 Visual Studios 目录宏并在您的解决方案目录中设置一个额外的包含路径,我之前在此站点上回答了一个与包含目录相关的问题,所以这是我创建的图表:

更大的链接在这里 在此处输入图像描述

不要注意左边的文字,但右边的黑色文字就是你要找的。$(SolutionDir)是一个宏,用于查找您的解决方案的目录,添加此宏将允许您的程序在程序执行期间访问该目录。

于 2013-05-24T18:18:07.400 回答
1

您可以调用 GetModuleFileName 来获取 exe 文件的完整路径。从那里您可以删除最低级别(/debug 或 /release)以获取项目路径。

那应该可以满足您的要求,但是您所要求的并不是一个好方法。将您的配置文件放在您的 exe 目录中将在以后遇到非管理员用户权限的问题。可以通过调用 SHGetFolderPath 找到此类文件的推荐位置,您可以在其中为您的应用程序创建一个可访问的文件夹。

于 2013-05-24T20:16:33.107 回答
0
  • 但是,我希望能够从 VS 解决方案运行程序,同时将 .config 文件与 .sln 文件保存在同一目录中。

只需设置Project Properties|Debugging|Working Directory为 $(SolutionDir)。或者你想要的任何目录。

在此处输入图像描述

于 2013-05-24T22:18:33.643 回答