我的配置:
我似乎无法正确使用UseAppInfo。我不希望路径中的应用程序名称,只是可执行文件的路径。我正在尝试这个:
wxStandardPaths::Get().UseAppInfo(wxStandardPaths::AppInfo_None);
wxString strExe = wxStandardPaths::Get().GetExecutablePath();
strExe包含完整路径和可执行文件名,尽管在它上面的行中的UseAppInfo中有选项AppInfo_None。我知道我从Get()获取一个实例,这个实例似乎没有在下一行中继承。文档说通过wxStandardPaths :: Get()使用wxStandardPaths。
我也尝试过以下内容,但也不起作用(令人惊讶的是它没有崩溃并且确实给了我包括应用名称的完整路径):
wxStandardPaths &path = wxStandardPaths::Get();
path.UseAppInfo(wxStandardPaths::AppInfo_None);
wxString strExe = path.GetExecutablePath();
有什么建议吗?
答案 0 :(得分:3)
wxGetCwd()
无法保证提供应用程序的路径。实际上,您可以在使用wxSetWorkingDirectory
运行应用程序时更改该路径。
我找到了获取应用程序路径的最佳方法是使用GetExecutablePath
并使用wxFileName
删除应用程序名称。
//need to include <wx/filename.h> and <wx/stdpaths.h>
wxFileName f(wxStandardPaths::Get().GetExecutablePath());
wxString appPath(f.GetPath());
答案 1 :(得分:1)
GetExecutablePath()
不受UseAppInfo()
的影响,因为它只是为您提供可执行路径,无论它在哪里。其他wxStandardPaths
方法确实遵守它,您可能希望使用GetDataDir()
而不是GetExecutablePath()
之类的内容。
答案 2 :(得分:1)
尝试:
wxString myPath(wxGetCwd());
返回myPath变量中app文件夹的路径。
wxString myPath是变量类型wxString wxGetCwd()返回路径app文件夹。
wxString myPath(wxGetCwd());是myPath变量中的app文件夹集的路径