wxwidgets 获取应用程序路径

标签 wxwidgets

我的配置:

  • 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/

相关文章:

user-interface - WxWidgets 和现代 opengl (3.3+)

wxpython - wx.ListCtrl 和列标题工具提示

c++ - 创建一个 wxActiveXContainer

python - wxPython:将文件拖到窗口中以获取文件路径

c++ - wxTreeCtrl 自定义事件

c++ - 模型、 View 、 Controller ——我理解类图,但我不理解所有的线程问题。建议?

c++ - 如何在子对话框中获取 wxFrame 指针

c++ - wxwidget 3.1.0 可以与 Visual Studio 2017 一起使用吗

c++ - wxMiniFrame 总是显示在顶部

c++ - wxWidgets 交叉编译 - 错误 : size of array ‘_GStaticAssertCompileTimeAssertion_0’ is negative