wxWidgets 和 VisualStudio 入门
Getting started with wxWidgets and VisualStudio
我想在 windows 上使用 visual studio 和 wxWidgets 构建 C++ 桌面应用程序 7. 我来自 C++ Builder。
我成功下载并构建了 wxWidgets 库,我可以 运行 minimal_vc14 解决方案。现在是创建我的 Hello World 应用程序的时候了。我创建了一个新的空 C++ 项目,并使用 NuGet 添加了 wxWidgets 模板。然后我使用 class 向导添加一个新的 class (Test3),其基础 class 为 wxApp.
我立即得到 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 已被定义,但我想使用库。我也不知道在哪里设置。
显然我在某处遗漏了一个配置步骤。请指教
我建议您在同一位置复制 minimal
示例(或 widgets
,因为它使用更多控件并链接更多库),并根据需要修改源文件.
当您玩够了之后,您肯定会发现更改项目文件非常容易,以便它使用 $(WXWIN)
或任何其他自定义设置。
p.s。我不知道 NuGet 中的 "wxWidgets template" 包含什么,但我强烈怀疑它是由 wxWidgets 维护者提供的。
像往常一样,阅读所有内容即可找到答案。
要使此进程正常工作,需要配置 2 项内容。
- 创建项目后,转到项目属性并将字符集设置为 Unicode。默认为多字节。我的下一个任务是找到更改默认设置的位置!
- 安装包模板(或者它是模板包?)后进入项目属性并将共享设置为"statically linked build"。
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);
我想在 windows 上使用 visual studio 和 wxWidgets 构建 C++ 桌面应用程序 7. 我来自 C++ Builder。
我成功下载并构建了 wxWidgets 库,我可以 运行 minimal_vc14 解决方案。现在是创建我的 Hello World 应用程序的时候了。我创建了一个新的空 C++ 项目,并使用 NuGet 添加了 wxWidgets 模板。然后我使用 class 向导添加一个新的 class (Test3),其基础 class 为 wxApp.
我立即得到 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 已被定义,但我想使用库。我也不知道在哪里设置。
显然我在某处遗漏了一个配置步骤。请指教
我建议您在同一位置复制 minimal
示例(或 widgets
,因为它使用更多控件并链接更多库),并根据需要修改源文件.
当您玩够了之后,您肯定会发现更改项目文件非常容易,以便它使用 $(WXWIN)
或任何其他自定义设置。
p.s。我不知道 NuGet 中的 "wxWidgets template" 包含什么,但我强烈怀疑它是由 wxWidgets 维护者提供的。
像往常一样,阅读所有内容即可找到答案。
要使此进程正常工作,需要配置 2 项内容。
- 创建项目后,转到项目属性并将字符集设置为 Unicode。默认为多字节。我的下一个任务是找到更改默认设置的位置!
- 安装包模板(或者它是模板包?)后进入项目属性并将共享设置为"statically linked build"。
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);