参考:https://blog.csdn.net/qiuchangyong/article/details/8164668?utm_source=blogxgwz9
非常感谢这位博主,之前一直没有找到解决办法。
办法就是:使用SetCurrentDirectory函数,将程序目录改回正确的。
具体操作就是,在调用GetOpenFileName和GetSaveFileName函数前,先保存下正确的程序目录,然后在调用完文件选择后,使用SetCurrentDirectory函数将目录改回正确的。
首先得到自身路径,详见http://www.huidong.xyz/index.php?mode=2&id=172
代码示例:
wchar_t woldpath[128] = { 0 };
_wgetcwd(woldpath, 1024);
// 此处调用文件选择对话框
// 执行完函数后设置目录为正确的目录
SetCurrentDirectory(woldpath);
如果已经调用了文件选择对话框,那么可以参考:http://www.huidong.xyz/index.php?mode=2&id=214 得到程序真实路径。