C++ – VS2017 安装 wxWidgets

准备

下载源码

下载地址:http://www.wxwidgets.org/downloads/

选择 Source Code > Windows 7z 下载

解压源码

解压 wxWidgets

编译源码

用 V S打开 wxWidgets-X.X.X\build\msw\wx_vc15.sln

分别选择Debug、DLL Debug、DLL Release、Release

然后点击 生成 > 生成解决方案

等待编译完成即可

样例

准备

新建一个空项目,建立 Main.cpp,复制官网上的例子

地址:https://docs.wxwidgets.org/trunk/overview_helloworld.html

// wxWidgets Hello World Program
// For compilers that support precompilation, includes wx/wx.h.
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
class MyApp : public wxApp
{
public:
    virtual bool OnInit();
};
class MyFrame : public wxFrame
{
public:
    MyFrame();
private:
    void OnHello(wxCommandEvent& event);
    void OnExit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
};
enum
{
    ID_Hello = 1
};
wxIMPLEMENT_APP(MyApp);
bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame();
    frame->Show(true);
    return true;
}
MyFrame::MyFrame()
    : wxFrame(NULL, wxID_ANY, Hello World)
{
    wxMenu *menuFile = new wxMenu;
    menuFile->Append(ID_Hello, &Hello...\tCtrl-H,
        Help string shown in status bar for this menu item);
    menuFile->AppendSeparator();
    menuFile->Append(wxID_EXIT);
    wxMenu *menuHelp = new wxMenu;
    menuHelp->Append(wxID_ABOUT);
    wxMenuBar *menuBar = new wxMenuBar;
    menuBar->Append(menuFile, &File);
    menuBar->Append(menuHelp, &Help);
    SetMenuBar(menuBar);
    CreateStatusBar();
    SetStatusText(Welcome to wxWidgets!);
    Bind(wxEVT_MENU, &MyFrame::OnHello, this, ID_Hello);
    Bind(wxEVT_MENU, &MyFrame::OnAbout, this, wxID_ABOUT);
    Bind(wxEVT_MENU, &MyFrame::OnExit, this, wxID_EXIT);
}
void MyFrame::OnExit(wxCommandEvent& event)
{
    Close(true);
}
void MyFrame::OnAbout(wxCommandEvent& event)
{
    wxMessageBox(This is a wxWidgets Hello World example,
        About Hello World, wxOK | wxICON_INFORMATION);
}
void MyFrame::OnHello(wxCommandEvent& event)
{
    wxLogMessage(Hello world from wxWidgets!);
}

配置项目

打开项目属性 项目 > X 属性

配置 – 所有配置

C/C++ > 常规 > 附加包含目录 中添加 wxWidgets-X.X.X\include

C/C++ > 常规 > 附加包含目录 中添加 wxWidgets-X.X.X\demos\life

C/C++ > 预处理器 > 预处理器定义 中添加 WXUSINGDLL

链接器 > 常规 > 附加库目录 中添加 wxWidgets-X.X.X\lib\vc_dll

配置 – Release

C/C++ > 常规 > 附加包含目录 中添加 wxWidgets-X.X.X\lib\vc_dll\mswu

链接器 > 输入 > 添加依赖项 中添加 wxbase31u.lib

链接器 > 输入 > 添加依赖项 中添加 wxmsw31u_core.lib

配置 – Debug

C/C++ > 常规 > 附加包含目录 中添加 wxWidgets-X.X.X\lib\vc_dll\mswud

链接器 > 输入 > 添加依赖项 中添加 wxbase31ud.lib

链接器 > 输入 > 添加依赖项 中添加 wxmsw31ud_core.lib

放入动态链接库

在项目根目录 > Release 中放入 wxbaseXXXu_vc_custom.dll

在项目根目录 > Release 中放入 wxmswXXXu_core_vc_custom.dll

在项目根目录 > Debug 中放入 wxbaseXXXud_vc_custom.dll

在项目根目录 > Debug 中放入 wxmswXXXud_core_vc_custom.dll

以上文件在 wxWidgets-X.X.X\lib\vc_dll 中

运行程序

完工

关于X64

编译源码时把Win32改成X64

配置项目时 vc_dll 文件夹改为 vc_x64_dll

放入动态链接库时放入X64版本

参考视频

https://www.youtube.com/watch?v=EI2taYkErRg

发表回复