getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

时间:2022-10-21 20:14:22
由于应用要用的获取当前的工作目录,发现了这个问题,具体已经找到其他的解决方案弥补掉了,这里希望有人能够帮忙说明下造成这个问题的具体原因?以及是否具有其他的解决方案?
问题描述:
使用getcwd()在进行单步调试和打包成exe后,获取的路径不一样
这里上传相关的文件目录的结构,以方便说明:
getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

以上目录中proj.win32文件夹的目录结构
getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

proj.win32/Debug.win32文件夹的目录结构
getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

使用单步调试时获取的路径是:
"C:\Users\1\Desktop\behaviac-master\example\airbattledemo\proj.win32"
直接运行exe是获取的路径是:
"C:\Users\1\Desktop\behaviac-master\example\airbattledemo\proj.win32\Debug.win32"
疑问的地方是:为什么通过VS进行单步调试时获取的工作路径并不是exe所在的路径
然后:因为在调试时运行结果和发不成exe时的运行结果不一样,造成一些不必要的麻烦,而且因为引用的lib中有使用了getcwd()函数的地方,是否有方法修改VS的一些配置选项,使得以上两种运行方法都能够获取一致的路径

3 个解决方案

#1


项目属性中可以设置,调试进默认是工程所在目录,直接运行默认是EXE所在目录

#2


getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

#3


刚刚试了一下,的确解决问题了,谢谢了

#1


项目属性中可以设置,调试进默认是工程所在目录,直接运行默认是EXE所在目录

#2


getcwd()函数在VS2012调试时和应用发布时获取的路径不一样?

#3


刚刚试了一下,的确解决问题了,谢谢了