Bevezető
Ha a wxWindows objektumainak használatával fejlesztjük C++-os programunkat,akkor programunk kis munkával lefordítható más operációs rendszerek alá is,
például *BSD, Linux, MacOS alá. Nagyon sok feladathoz kész objektumok
állnak rendelkezésre. Az alap dolgok, mint mindenféle menük és ablakok
kezelése, események kezelése. Ezeken kívül különféle adatok alapobjektumai
léteznek, mint a PERL-éhez hasonló hash-ek (wxHashMap) és alap tömb
objektumok (wxArray), melyek rendezhetők és keresni lehet bennük.
Bár wxWindows egy régebbi lefordított változata letölthető DevC++-hez,
de a jelenlegi stabil verzió a 2.4.2-est magunknak kell lefordítani
és telepíteni (Debian Linux alatt vannak előre elkészített csomagok).
TelepítésMost lássuk a telepítés menetét. Töltsük le a
http://www.wxwindows.org honlapról
a wxWindows stabil változatát (jelenleg 2.4.2). Telepítsük fel ill.
csomagoljuk ki (a DevC++-hoz készült Template úgy van megírva, hogy
a DevC++ a c:dev-cpp, a wxWindows a c:dev-cppwxwindows-2.4.2
könyvtárba van telepítve). Töltsük le a
fil41b.zip -et és másoljuk fel úgy a
Dev-C++ könyvtárba, hogy az exe-k a bin/ könyvtárba kerüljenek. Érdemes
még a gtxt040b.zip -et is letölteni
(Debian alatt gettext-base és gettext csomagok),
ha használni akarjuk a gettext-et a programunk más nyelvekre lefordítani.
Állítsuk be a DevC++ bin könyvtárát a PATH listába.
Indítsunk egy parancssort és menjünk a wxWindows-2.4.2
könyvtárba, onnan az src/msw könyvtárba. Ha kiadjuk a
make -f makefile.g95 WXMAKINGDLL=1 parancsot, jó sokáig
fordítja a wxWindows könyvtárt és a végén egy libwxmsw242d.a és egy
wxmsw242d.dll fájl keletkezik. Ezeket a fejlesztés közben használhatjuk.
Jó nagy méretű a dll, kb. 30 mega. Tele van a nyomkövetéshez kapcsolódó
információkkal. Továbbá a lib/mswdlld/wx/ könyvtárba kerül egy setup.h,
ami a lib-hez tartozó adatokat tartalmazza. A végleges (nyomkövetési
információkat nem tartalmazó) könyvtár lefordítása a
make -f makefile.g95 WXMAKINGDLL=1 FINAL=1 paranccsal
lehetséges. Így egy libwxmsw242.a, egy wxmsw242.dll és a lib/mswdll/wx/
könyvtárban még egy setup.h keletkezik. A WXMAKINGDLL=1 paraméter
lespórolásával az exe-be fordítható lib keletkezik, de ez szerintem
nem jó, mert minden fordításnál sokkal tovább tart a linkelés. A
wxmsw242.dll és a végleges exe is a strip paranccsal
kisebbíthető. Levágja a megmaradt nyomkövetési információt. Utána az
UPX nevű programmal
a DLL-t és az EXE-t is tovább tömöríthetjük. Ugyanitt természetesen a
Linux verzió is letölthető ill. a forrás.
wxWindows program lefordításaHa eddig eljutottunk van két dll-ünk két lib-ünk és két .h fájlunk.
Attól függően, hogy melyik library-t akarjuk használni (a debug verziót
vagy a véglegest), kell mást megadni a linkernek: -lwxmsw242d vagy
-lwxmsw232 és fordítónak: -Ic:/wxwindows-2.4.2/lib/mswdlld vagy
-Ic:/wxwindows-2.4.2/lib/mswdll. A /wx könyvtár szándékosan nincs megadva,
ezt mindig a .c és .cpp fájlokban adjuk meg:
#includeEzeket a make -f makefile.g95 WXUSINGDLL=1 paranccsal
fordíthatjuk le.
DevC++-hoz letölthető template itt: ezt én gyártottamMásoljuk be a Dev-Cpp/Template könyvtárba a fájlokat. Az általam
készített template használ egy származtatott log ablak objektumot. Másold
a két fájlt a projektkönyvtáradba. Letölthető itt:
Alapból a template-em végleges verziót fordít. A Projekt beállításoknála C++ fordítónak kell beállítani a következő opciókat:
-D__WXDEBUG__ -g. A linkernél pedig a -lwxmsw242
opciót kell átírni -lwxmsw242d-re. Ekkor látszódni fog
a saját log ablak is, egyébként nem fordul bele a programba.
A template-em megpróbálja a m_locale.Init függvényhívással megpróbáljabeállítani a magyar sajátosságokat. Bár a wxWindows 2.4.2-ben megvan
az üzenetek magyar fordítása, van benne egy-két hiba. Az általam
kijavított szövegek javítása letölthető itt:
wxhu.zip. A végleges programhoz elég a
wxstd.mo fájlt mellékelni.