我已将项目设置为将.exe文件输出到特定目录,并且如果我在Visual Studio外部运行此编译的可执行文件,则可以使用cstdio
查找并使用其周围的文件。但是,如果我在Visual Studio中运行它,这些文件突然消失了,就像在错误的目录中一样。
是什么原因造成的,我该如何解决?
最佳答案
Visual Studio将在其自己的项目文件夹中运行“在那里”的程序,因此该程序的工作目录(在其中创建并查找文件等)将是项目目录,而不是可执行文件的存储目录。
您可以自己做。打开命令提示符,然后键入可执行文件的完整路径。它将运行,写入并在提示的当前文件夹中查找文件。
不要使用argv[0]
。这将为您提供命令行,并且可能不包括可执行文件的实际位置。
如果要在可执行文件中保留文件,而不管程序从何处运行,请GetModuleFileName will tell you where the executable is。然后,您可以剥离可执行文件以获取路径,并将其与您要与该可执行文件位于同一文件夹或相对于该可执行文件位于相同文件夹中的其他文件的名称连接起来。使用这种方法,您可以在任何地方(包括Visual Studio)运行程序。
如果您想知道可执行文件从何处运行并以自己的方式运行,请use _getcwd.
如果您只关心Visual Studio,请导航至“项目”->“属性”->“配置属性”->“调试”,然后将“工作目录”设置为目标目录
关于c++ - VS2010:设置可执行文件在哪个目录中查找文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36509700/