[C++]VS2017安装wxWidgets

准备

下载源码

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

选择 Source Code > Windows 7z 下载

Release 3.1.2 下载:http://47.104.206.113/kodexplorer/index.php?share/file&user=100&sid=xwW2kjc7

解压源码

解压wxWidgets

编译源码

用VS打开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

发表回复