我有一个项目(原生 C++ 编译为 .exe),它在 VS 2010 之外运行良好,但在 VS 内部(无论有或没有调试器),它在尝试查找位于同一位置的文本文件时遇到了困难bin 文件夹就是这样。
关于为什么会发生这种情况有什么想法吗?我的预感是 VS 在尝试打开文件时会混淆代码的显示位置,但我不知道足够的细节来纠正这个问题。
一些细节:
我的 .exe 调用我之前编写的 .dll 中的函数,该函数又尝试查找指定该函数参数的文本文件。为了方便起见,我将所有这些文件放在同一个文件夹中,因此查找文本文件不会成为问题。
在打开文件之前,该函数会使用以下命令检查文件是否存在:
PersistentAssert(Utility::FileExists(Filename), "Parameter file not found");
在 VS 2010 中,此行会导致显示“未找到参数文件”,但在 VS 之外,程序设法找到该文件。
最佳答案
默认情况下,从 Visual Studio 启动可执行文件时,它使用项目文件目录作为当前工作目录。您可以在配置属性 -> 调试 -> 工作目录中更改它。
但是我认为从当前工作目录搜索程序数据文件等不是正确的行为。相反,您的程序应该找出可执行文件的目录并找到该目录中的文件。
关于c++ - 仅在 Visual Studio 外部运行时才能找到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8723246/