Windows native programozás
A tantárgy angol neve: Windows Native Programming
Adatlap utolsó módosítása: 2016. január 19.
Villamosmérnöki szakMérnök informatikus szakSzabadon választható tantárgy
Ajánlott a programozás alapjai 1. (VIEEA100/VIEEAA00/VIHIA106/VIHIAA01 valamelyike).
A tárgyat nem vehetik fel azok a hallgatók, akik teljesítették a tárgy előd tantárgyát (VIMH9143 vagy VIHVJV43)
Jelenleg az egyik legelterjedtebb személyi számítógépes operációs rendszer a Microsoft Windows. Az alatta futó applikációk megírása speciális programozói ismereteket igényel, melyhez számos fejlesztői eszköz áll rendelkezésre különféle programozási nyelveken és platformokon. Ennek a tantárgynak az elsődleges célkitűzése, hogy a megismertesse a Windows native módú, Win32 API (Application Programming Interface) használatára épülő programozást és a megszerzett ismereteket konkrét példákon keresztül elmélyítse (megjelenítés, adatfeldolgozás, kommunikáció perifériákkal, stb.). A tantárgy ismerteti továbbá a Windows 8-tól bevezetésre került WinRT (Windows Runtime Library), majd UWP (Universal Windows Platform) alapjait is, amely C++ nyelven számos újítást bevezetve biztosít a Win32 API-hoz hasonló jellegű funkcionalitást.Kitekintés jelleggel foglalkozunk az eszközmeghajtók fejlesztési kérdéseivel is, így a korábbi DDK (Windows Driver Development Kit) illetve a jelenlegi WDK (Windows Driver Kit) alkalmazásával.
Windows alapfogalmak és programozói fejlesztőrendszerek.GUI, az egységes felhasználói felület, multitasking, memóriakezelés, üzenet alapú működés.Egy egyszerű Windows program felépítése API használatával. Több ablakos applikációk.Szövegek kezelése, GDI, handler fogalma, scrollbar.Grafikai elemek: vonalak, felületek, a mapping mode fogalma, régiók és útvonalak, bitmap, metafile, betűtípusok.A billentyűzet és az egér kezelése.A Windows timer.A child window fogalma, nyomógombok, scrollbar, edit-box, list-box használata.Erőforrások: ikon, cursor, bitmap, menük és gyorsítógombok, modális és nem-modális dialógusablakok, message box-ok, közös dialógusablakok.Dynamic Link Library (DLL).A WinRT (Windows Runtime Library) és az UWP (Universal Windows Platform).A driverfejlesztés software eszközei.A fentiek mérnöki alkalmazásokon keresztül történő bemutatása.
Heti bontásban:
1.hét: Windows alapfogalmak, a Windows kialakulása, különféle verziók. Programozói fejlesztőrendszerek. A grafikus felhasználói felület alapfilozófiája, felhasználói interface és üzenetvezérelt működés. Memóriakezelés és multitasking. Egy egyszerű Windows API program felépítése. A kód fő részei. Típusok, elnevezési konvenciók, handlerek.
2.hét: Szöveges információ kezelése, képernyő output. A GDI (Graphics Device Interface) használata. Egy szöveges outputtal rendelkező program megírása, kiegészítése scrollbar használattal. Grafikai elemek: vonalak, felületek, régiók, útvonalak, színek kezelése. Egy konkrét alkalmazás: függvény ábrázolása, illetve mérési adatsor beolvasása fileból és annak megjelenítése.
3.hét: A mapping mode fogalma, használata. Egy grafikus outputtal rendelkező program felépítése. Logikai és eszközkoordináták: példaprogram nagyméretű ábra átméretezésére és megjelenítésére. A Windows API által támogatott képformátumok. Képek létrehozása, használata; beolvasás és megjelenítés fileból. Nem konvencionális ablakformák.
4.hét: Beviteli eszközök: a billentyűzet és az egér kezelése. Karakterkészletek, betűtípusok, nemzetközi karakterek. A Windows API használata ábrák és felirataik megjelenítésében.
5.hét: Időzítés Windows programokban. Az időzítő működésének alapja, beállítása, használhatósági korlátai. Példaprogram a timer használatával: változó adatok megjelenítése szöveges és grafikus formában.
6.hét: A felhasználói felület javítása a child-window segítségével. Nyomógombok fajtái, görgetősáv, edit-box, list-box használata és ezek különféle stílusai. Egy összetett felhasználói felületű program elkészítése.
7.hét: Az erőforrások használata, a resource editor működése. Resource file és resource compiler. Alkalmazási példa: erőforrások használata a program grafikus elemeinek és adattömbjeinek tárolására.
8.hét: Menük és típusaik: system, main, popup, floating popup. A resource editor használata a menük létrehozásához. Menühasználat ábrák egyedi ablakokban történő megjelenítésére.
9.hét: Modális és nem-modális dialógusablakok. A dialógusablakok kezelése a programban. Message box-ok és a common dialog box library használata. Példaprogram a dialógusablakok használatára: paraméterbeállítás és átadás.
10.hét: A DLL-ek felépítése, használata és alkalmazási lehetőségei. Programozási gyakorlat: egy DLL megírása és hívása egy alkalmazásból. Team munka és feladatmegosztás nagyobb projektek esetén.
11.A Windows Runtime Library és a Universal Windows Platform: platformfüggetlen programfejlesztés. Áttekintés: a Win32 API továbbfejlesztése.
12.hét: Nagy ZH megírása.
13.Egy Metro-stílusú applikáció elkészítése Windows 10 platformon.
14.Hardware eszközök támogatása Windows alatt: eszközmeghajtók. Fejlesztőeszközök ismertetése; a Windows Driver Kit, egy példaprogram bemutatása.
A tantárgyat számítógépteremben oktatjuk ahol minden egyes hallgató az oktató instrukcióinak megfelelően, önállóan végzi el a kitűzött feladatokat. Az órák elméleti bevezetőből és hozzá kapcsolódó programozási gyakorlati feladatokból állnak.
a. A szorgalmi időszakban:
A hallgatók a tárgy sikeres elvégzése esetén félévi jegyet kapnak. A félévi jegy megszerzésének a feltételei:
- Egy nagy zárthelyi legalább elégségesre történő megírása a tanóra keretében. A ZH egy konkrét programozási feladat számítógépen történő elvégzése.
- Házi feladat elkészítése, beadása és elfogadása a szorgalmi időszak végéig. A házi feladat egy az oktatóval egyeztetett C vagy C++ program elkészítése Windows API használatával. A házi feladat osztályzása ötfokozatú skálán, érdemjegyekkel történik.
- A félévi jegy a zárthelyire és a házi feladatra kapott jegyek átlaga, a hagyományos kerekítési szabályok szerint.
b. A vizsgaidőszakban: -
c. Elővizsga: -
Sikertelen zárthelyi a szorgalmi időszakban a pótzárthelyin pótolható.
A sikertelen (pót)zárthelyi a pótlási héten különeljárási díj ellenében egy további alkalommal pótolható.
A házi feladat különeljárási díj ellenében a pótlási héten pótolható.
Az oktatóval történő egyéni megbeszélés szerint.
Az MSDN online dokumentációi: https://msdn.microsoft.com/
Charles Petzold: Programming Windows
Microsoft Press, 1998
ISBN 1-57231-995-X
Sipos Mariann: A Visual C++ és az MFC
ISBN: 963640979
http://www.hvt.bme.hu/~csurgai/Bsc/WinProg.pdf