Radek Chalupa   konzultace a školení programování, vývoj software na zakázku

wxWidgets ve Visual Studiu

20.5.2018

Na internetu je k nalezení spousta různých návodů jak v Microsoft Visual Studiu použít knihovny wxWiggets. Mnohé jsou již značně zastaralé a mnohé nefungují. Popíšu tedy ověřený způsob fungující na Visual Studio Community 2017 verze 15.7.1 a k tomuto datu aktuální stabilní verzi wxWidgets 3.0.4.

Z webu www.wxwidgets.org si v sekci “downloads” stáhneme zdrojový kód poslední stabilní verze pro Windows ve formátu .zip, konkrétně jde o soubor wxWidgets-3.0.4.zip. Tento soubor rozbalíme do zvolené složky, pro jistotu doporučuji aby cesta neobsahovala mezery.

Nyní je třeba provést kompilaci a sestavení abychom získali potřebné knihovny .lib a .dll. Spustíme Visual Studio a otevřeme solution wx_vc12.sln kterou nejdeme ve složce /build/msw. Při otevření potvrdíme nabízenou konverzi na vyšší sadu nástrojů a při načítání jednotlivých projektů (je jich 24) se pravděpodobně zobrazí varování že projekt nepochází z ověřeného zdroje a je potřeba potvrdit jeho otevření. Po načtení solution provedeme sestavení nejlépe všech konfigurací, tj. Release, DLL Release, Debug, DLL Debug pro požadované platformy, tj. x64 a/nebo Win32.

Nyní již můžeme vše vyzkoušet. Ve Visual Studiu založíme nový C++ projekt typu “windows application”, nejlépe jako prázdný projekt. Pro vyzkoušení stačí do projektu přidat jeden zdrojový soubor, např. wxw-test.cpp.

V nastavení projektu ve volbě VC++ Directories přidáme do include path cestu ke složkám (myšleno samozřejmě jako podsložky výše zmíněné cesty kde je složka s knihovnou):

 • /lib/vc_x64_lib/mswu

 • /include

a do library directories:

 • /lib/vc_x64_dll

Konkrétní zdrojový kód základní aplikace typu “hello world” může vypadat třeba následovně.

#define WXUSINGDLL
#define wxWidgetsDLLH

#include 
#include 

#pragma comment (lib, "wxmsw30u_core.lib")
#pragma comment (lib, "wxbase30u.lib")

class MyApp : public wxApp
{
public:
	virtual bool OnInit()
	{
		wxFrame* okno = new wxFrame(0, wxID_ANY, _T("Ukázka wxWidgets"));
		if (nullptr == okno)
			return false;
		okno->Show(true);
		return true;
	}
};
IMPLEMENT_APP(MyApp)

Zmíněný ukázkový projekt v MS Visual Studiu 2017 najdete jako git repozitář na mé stránce na github.com.