我编写了一个c ++程序并将其部署在c:\ my_app中,我的可执行文件的路径是c:\ my_app\my_app.exe.比方说,my_app需要许多文件,例如the_file.txt,它位于c:\ my_app\the_file.txt中.
在我的可执行文件中,我将txt文件打开为xx.open("the_file.txt");
此外,我已经将我的程序与.myp扩展相关联.
当我在桌面上,并且想要打开一个名为example.myp的文件时,我的程序看不到the_file.txt.因为,它(以某种方式)假设它当前正在桌面上工作.
有没有简单的方法来通过更改HKEY_CLASSES_ROOT中打开的shell命令来处理此问题?天真的解决方案是使用类似"%my_app_location/the_file.txt"的内容来更改所有文件打开操作.我不想那样做.
感谢你的帮助.
始终使用完整路径名来打开文件.换句话说,不要打开"foo.txt",打开"c:\ bar\foo.txt".要查找EXE的安装目录,请使用GetModuleFileName(),为模块句柄传递NULL.