我的配置:
- wxWidgets版本:3.0.1
- 代码块版本:13.12 64 位
- 编译器:gnu gcc 4.8.2
- 平台/操作系统:Linux 64位 Ubuntu 14.04.1 LTS
我似乎无法正确使用 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();
有什么建议吗?
最佳答案
wxGetCwd()
不保证提供应用程序的路径。事实上,您可以在应用程序运行时使用 wxSetWorkingDirectory
更改该路径。
我发现获取应用程序路径的最佳方法是使用 GetExecutablePath
并使用 wxFileName
删除应用程序名称。
//need to include <wx/filename.h> and <wx/stdpaths.h>
wxFileName f(wxStandardPaths::Get().GetExecutablePath());
wxString appPath(f.GetPath());
关于wxwidgets 获取应用程序路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819812/