【问题标题】:Getting started with wxWidgets and VisualStudiowxWidgets 和 VisualStudio 入门
【发布时间】:2017-02-22 23:15:26
【问题描述】:

我想在 Windows 7 上使用 Visual Studio 和 wxWidgets 构建 C++ 桌面应用程序。我来自 C++ Builder。

我成功下载并构建了 wxWidgets 库,并且可以很好地运行 minimum_vc14 解决方案。现在是时候创建我的 Hello World 应用程序了。我创建了一个新的空 C++ 项目,并使用 NuGet 添加了 wxWidgets 模板。然后我使用类向导添加一个基类为 wxApp 的新类(Test3)。

我立即得到 45 个错误。其中第一个是

Severity    Code    Description Project File    Line    Suppression State
Error (active)      cannot open source file "../../../lib/vc_dll/mswud/wx/setup.h"  Test3   c:\wxWidgets-3.1.0\include\msvc\wx\setup.h  121 

深入研究该文件,我发现了以下内容。最后一个 include 语句是上面确定的问题行,但我认为问题出在 wxConcat6 语句中。所有这些 ../ 无处可寻。那不应该指向$(WXWIN)吗?

// the real setup.h header file we need is in the build-specific directory,
// construct the path to it
#ifdef wxSUFFIX
    #define wxSETUPH_PATH \
        wxCONCAT6(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, wxSUFFIX, /wx/setup.h)
#else // suffix is empty
    #define wxSETUPH_PATH \
        wxCONCAT5(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, /wx/setup.h)
#endif

#define wxSETUPH_PATH_STR wxSTRINGIZE(wxSETUPH_PATH)

#include wxSETUPH_PATH_STR

另外,较小的问题,但在 setup.h 文件中我看到已定义 WXUSINGDLL,但我想使用库。我也不知道是在哪里设置的。

显然我在某处遗漏了一个配置步骤。请指教。

【问题讨论】:

    标签: visual-studio visual-studio-2015 wxwidgets


    【解决方案1】:

    像往常一样,通过阅读所有内容可以找到答案。

    需要配置 2 项才能使此过程正常工作。

    1. 创建项目后,转到项目属性并将字符集设置为 Unicode。默认值为多字节。我的下一个任务是找到更改默认值的位置!
    2. 安装包模板(还是模板包?)后,转到项目属性并将共享设置为“静态链接构建”。

    1. Presto changeo,你准备好了。添加以下绝对最小值以制作可编译的应用程序。这是基于这里的教程:creating-wxwidgets-programs-with-visual-studio-2015

      bool MyProjectApp::OnInit()
      {
          wxFrame* mainFrame = new wxFrame(nullptr, wxID_ANY, L"MyProject");
          mainFrame->Show(true);
          return true;
      }
      wxIMPLEMENT_APP(MyProjectApp);
      

    【讨论】:

      【解决方案2】:

      我建议您在同一位置复制minimal 示例(或widgets,因为它使用更多控件并链接更多库),并根据需要修改源文件。

      当您玩够了它之后,您肯定会发现更改项目文件非常容易,以便它使用$(WXWIN) 或任何其他自定义设置。

      附言我不知道 NuGet 中的“wxWidgets 模板”包含什么,但我强烈怀疑它是由 wxWidgets 维护者提供的。

      【讨论】:

      • 我已经玩过最小的了。我在回答中提到的教程中的示例比这要少得多,我喜欢自己动手。我引用的模板实际上是在 wxwidgets wiki 站点上引用的,所以我认为它是合法的。
      • 不,就像每个 wiki 一样,它主要由贡献者编写。那篇文章也不例外。
      猜你喜欢
      • 2016-08-03
      • 1970-01-01
      • 2011-10-11
      • 2016-12-14
      • 2013-05-26
      • 2011-09-09
      • 2012-07-29
      • 2020-08-23
      • 2011-01-06
      相关资源
      最近更新 更多