Vizuális, eseményvezérelt programozás XI.

Hasonló dokumentumok
Objektumorientált Programozás VI.

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Objektumorientált programozás C# nyelven

Mobil Informatikai Rendszerek

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Vizuális, eseményvezérelt programozás X. V 1.0

.NET (Dot-NET) #1 (Bevezetés)

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Mobil Informatikai Rendszerek

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Adatbázis és szoftverfejlesztés elmélet

Objektumorientált programozás C# nyelven

Objektum Orientált Programozás IV.

Objektumorientált Programozás III.

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Szoftvertervezés és -fejlesztés I.

Objektumorientált Programozás IV.

C++ programok fordítása

Objektumorientált Programozás V.

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Széchenyi István Egyetem

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Objektum Orientált Programozás VII.

Objektumorientált Programozás VI.

Objektumorientált programozás C# nyelven

Programozás C és C++ -ban

Objektum Orientált Programozás V.

és az instanceof operátor

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Szoftver technológia. Build systems. Cserép Máté ELTE Informatikai Kar 2019.

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Bevezetés a programozásba Előadás: Fordítási egység

Programozási nyelvek Java

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

.NET alkalmazások telepítése

Objektumorientált programozás. Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programzás I gyakorlat

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

1. Alapok. Programozás II

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I.

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

3. Osztályok II. Programozás II

Programozás I. gyakorlat

PE/COFF fájl formátum

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Szoftvertechnolo gia gyakorlat

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

OOP #14 (referencia-elv)

Pénzügyi algoritmusok

Clang Static Analyzer belülről

Haladóprogramozás (C#) , I. félév BMF NIK

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Webes alkalmazások fejlesztése

Podoski Péter és Zabb László

.NET Microsoft.Net Framework

Java és web programozás

Java I. A Java programozási nyelv

Java programozási nyelv 5. rész Osztályok III.

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozási nyelvek JAVA EA+GY 1. gyakolat

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

A szerzõrõl... xi Bevezetés... xiii

Szoftvertechnolo gia 7. gyakorlat

Operációs rendszerek gyak.

A C# programozási nyelv alapjai

Interfészek. PPT 2007/2008 tavasz.

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

Programozási Nyelvek (C++) Gyakorlat

Dr. Schuster György október 14.

Szoftvertechnológia alapjai Java előadások

AWK programozás, minták, vezérlési szerkezetek

Eseményvezérelt és objektumorientált programozás

AWK programozás, minták, vezérlési szerkezetek

Programozási nyelvek Java

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

C++ programozási nyelv

Programozás II. 2. Dr. Iványi Péter

Java és web programozás

Már megismert fogalmak áttekintése

AWK programozás Bevezetés

Szoftvertervezés és -fejlesztés I.

Bevezetés a programozásba I.

Programozási nyelvek Java

Átírás:

Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 1

Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges V10 2

Dynamic Link Library / Shared Object Alkalmazások által megosztott programmodul, ami tartalmazhat programkódot, adatokat, erőforrásokat Külön fordítják, a programhoz futási időben kapcsolódik Példák a Windows rendszerből: gdi32dll 2d grafikai funkciókat tartalmaz (GDI!) gdiplusdll GDI+ funkciók commdlg32dll párbeszédablakok user32dll alapvető ablakkezelő és inputfunkciók crypto32dll kriptográfiai funkciók winmmdll alacsonyszintű multimédiás funkciók (pl zene) V10 3

A fordítási folyamat V10 FORRÁS (cpp, pas, c, cs, *) ELŐFELDOLGOZÁS, FORDÍTÁS OBJECT FILE (o, obj) LINKELÉS FUTTATHATÓ FILE (exe) KÜLSŐ LIBRARY-K (o, obj, so, dll) Object File: Egy köztes kód-reprezentáció, a fordító generálja a forráskód lefordítása után Tartalmazza: az értelmezett, fordított kódot és relokációs adatokat, utóbbit a linker használja a futtatható állomány generálásához NET keretrendszer esetén a relokációs adatok nem közvetlen címek A futtatható exe NET esetén köztes kódú 4

Static linking V10 Program SomeFunct1 SomeFunct2 SomeFunct3 Constant1 Constant2 Constant3 Main Code @SomeFunct3 @SomeFunct1 Az összes használt függvény/ erőforrás a programban van Ezek helye a fordítóprogram számára ismert Így fordításkor az ezekre történő hivatkozás STATIKUS, vagyis az adott kód a program saját címterületén található 5

Dynamic linking V10 Program 1 @SomeFunct2 DLL SomeFunct2 SomeFunct3 Program 2 @SomeFunct3 Egyes függvények/erőforrások a programon kívül vannak Ezek helye a fordítóprogram számára nem ismert Így fordításkor az ezekre történő hivatkozás DINAMIKUS, vagyis az adott kód a memóriában mindig máshol található, futási időben derül ki a pontos hely (a betöltést az OS végzi) Ugyanazt a függvényt több program is használhatja megosztott erőforrás (~ Shared Object) A legtöbb modern programban jelen van 6

DLL elérése a NET keretrendszerben Natív DLL használata Platform Invoke (P/Invoke: natív kód hívása felügyelt V10 környezetből) using SystemRuntimeInteropServices; [DllImport("winmmdll", SetLastError = true)] static extern bool PlaySound(string pszsound, UIntPtr hmod, uint fdwsound); string fname = @"c:\windows\media\tadawav"; PlaySound(fname, UIntPtrZero, 1); A DllImport attribútum adja meg a tartalmazó dll nevét A használni kívánt függvényt deklarálni kell, az extern kulcsszó jelzi, hogy nem mi írjuk, hanem egy dll-ből származik A függvény szignatúrájának illeszkednie kell a hívni kívánt dll-beli függvény szignatúrájához Sokszor nem felügyelt típusokra való manuális konverziókra, struktúrák memóriabeli elhelyezésének meghatározására vagy kódolás módosítására (stb) is szükség van a nyelvek együttműködésének biztosításához Szignatúrák, segítség, példák: wwwpinvokenet 7

DLL elérése a NET keretrendszerben Felügyelt DLL használata Referencia hozzáadása: Project/Add reference Ezután a DLL-ben tárolt névterek és a névtérben lévő osztályok/metódusok a szokványos módon elérhetőek Eddig is ezt használtuk! V10 8

DLL készítése File, New Project: Class Library alkalmazássablon segítségével Önmagában nem futtatható, így többnyire tesztalkalmazást is készítünk hozzá azonos solution-ön belül Fordítás után a dll fájl előáll A DLL-t használó alkalmazás referenciái közé fel kell venni a DLL fájlt Ha azonos solution-ben fejlesztjük a DLL-t és a DLL-t használó alkalmazást, akkor nem az előállt dll-t, hanem magát a projektet érdemes referenciaként megadni (ezt a Visual Studio megengedi) a lehetséges változások miatt A referencia hozzáadása után DLL-t használó alkalmazásban a DLL névtere és osztálya(i) szokványosan elérhetőek Bármilyen DLL-t használó alkalmazás esetében a fordítás során a felhasznált DLL-ek is odakerülnek a készülő EXE mellé (alapértelmezésben) A kimásolódott DLL-eknek a program futtatásakor rendelkezésre kell állniuk V10 9