Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Podobné dokumenty
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

PROGRAMOVÁNÍ V C++ CVIČENÍ

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Uživatelská příručka Autor: Martin Fiala

Množina čísel int stl-set-int.cpp

Struktury, funkce, reference

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Ukazatele, dynamická alokace

Operační systémy. Cvičení 4: Programování v C pod Unixem

Úvod. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík,2016

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základy programování (IZP)

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Rozklad na prvočinitele. 3. prosince 2010

Základy programování (IZP)

Instalace a konfigurace web serveru. WA1 Martin Klíma

Robot Operating System. Ing. Zdeněk Materna,

1 Webový server, instalace PHP a MySQL 13

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

ČÁST 1. Základy 32bitového programování ve Windows

Operační systémy. Cvičení 3: Programování v C pod Unixem

Národní šetření výsledků žáků v počátečním vzdělávání

První kroky s METEL IEC IDE

Velký křízovkářský slovník 4.0 (VKS) Instalace programu

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Redakční systém Joomla. Prokop Zelený

1. Webový server, instalace PHP a MySQL 13

SW ATTIS Postup aktualizace aplikace ATTIS

KTE / ZPE Informační technologie

Ošetření chyb a výjimky

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

SW ATTIS Postup aktualizace aplikace ATTIS

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

map, multimap - Asociativní pole v C++.

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Upgrade klientů Notes na V10

FORTANNS. 22. února 2010

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Doporučené postupy. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

IUJCE 07/08 Přednáška č. 1

Funkční objekty v C++.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

František Hudek. duben ročník

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Embedded vývoj v Clutteru a Mx

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

Základy programování (IZP)

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Instalace pluginů pro formuláře na eportálu ČSSZ

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Programovací jazyk C++ Hodina 1

Úvod do programování. Lekce 1

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Komponenty v.net. Obsah přednášky

Vector datový kontejner v C++.

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Instalační manuál. HelpDesk

PB161 Programování v jazyce C++ Přednáška 9

Množina v C++ (set, multiset).

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

Autodesk AutoCAD Civil 3D 2015

PB161 Programování v jazyce C++ Přednáška 8

Jak importovat profily do Cura (Windows a

C++ 0x aka C++11. Základním kamenem je třída std::thread

AutoCAD Civil 3D 2017

1. Instalace MySQL Serveru Konfigurace MySql Serveru Vytvoření struktury databáze...3

PB161 Programování v jazyce C++ Přednáška 9

Seznámení s prostředím dot.net Framework

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

Projekty pro výuku programování v jazyce Java

dostat zdroják Petr Zemek Fakulta informačních technologií VUT v Brně izemek

Nastavení provozního prostředí webového prohlížeče pro aplikaci

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

1 Správce licencí Správce licencí Správce licencí Start > Všechny programy > IDEA StatiCa > Správce licencí Soubor > Správce licencí Licence

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s.

Příprava prostředí pro výuku PHP a MySQL

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Výrazy, operace, příkazy

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Jazyk C++ II. Výjimky

NASTAVENÍ PROGRAMU EVIDENCE AUTOBAZARU PRO OS VISTA, WIN7 a WIN8 LOKÁLNÍ INSTALACE (PRO 1 POČÍTAČ)

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

CS OTE. Dokumentace pro externí uživatele

ZÁKLADNÍ POKYNY PRO INSTALACI PROID+ Z INSTALAČNÍHO MÉDIA

Transkript:

Práce s knihovnami Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 04/2016, Lekce 7 https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start

Knihovna Poco::Net Umožňuje snadný přístup k síti a webovým službám. Obsahuje třídy a funkce pro práci s technologiemi: HTTP, FTP SMTP, POP3 TCP/IP, UDP Instalace na Linuxu: sudo apt-get install libpoconet9 (nebo libpoconet9-dbg) Další knihovny z balíčku Poco: Poco::Foundation užitečné nástroje, např. práce se soubory, logování, datum a čas, systém událostí Poco::XML, Poco::JSON další webové technologie Poco::Util konfigurace programu ze souboru a z příkazové řádky Poco::Crypto kryptografie Poco::Data přístup k databázím (MySQL, SQLite) Poco::Zip komprese

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Poco je ke stažení na stránce pocoproject.org. Zde je také k dispozici dokumentace, ve které naleznete podrobný popis tříd a funkcí, které knihovna poskytuje.

Rozbalte.zip soubor do nějaké dobře přístupné složky. Cestu k rozbaleným souborům budeme několikrát hledat a psát, takže se vyplatí, když bude krátká. Na obrázku: c:\data\poco 6

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Poco Basic Edition V základním balíčku Poco nalezneme pět knihoven. Knihovna Foundation obsahuje funkce a typy, na nichž ostatní knihovny závisí. Poco::Foundation Poco::JSON Poco::XML Poco::Net Poco::Util

V podsložce Foundation jsou k dispozici projektové soubory pro všechny podporované verze Visual Studia. vs120.sln Visual Studio 2013 vs140.sln Visual Studio 2015 9

Po otevření příslušného.sln souboru... 10

Zkompilujme projekt Foundation. 11

Pokud se zadařilo, byly stavbou vytvořeny (zejména) soubory: poco\lib64\pocofoundationd.lib poco\bin64\pocofoundationd.dll 12

To samé pro knihovnu Net 13

To samé pro knihovnu Net 14

To samé pro knihovnu Net 15

Pokud by knihovna Foundation nebyla zkompilovaná, stavba knihovny Net by teď selhala. Byly vytvořeny soubory: poco\lib64\poconetd.lib poco\bin64\poconetd.dll 16

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Spustťe čerstvou instanci Visual Studia a vytvořte nový projekt. 18

19

Vyberte stejnou konfiguraci a architekturu, pro kterou jste zkompilovali knihovny. 20

Vytvořte zdrojový soubor... 21

// adapted from: http://www.codeproject.com/articles/252566/learning-poco-get-with-http #include <Poco/Net/HTTPClientSession.h> #include <Poco/Net/HTTPRequest.h> #include <Poco/Net/HTTPResponse.h> #include <Poco/StreamCopier.h> #include <Poco/Path.h> #include <Poco/URI.h> #include <Poco/Exception.h> #include <iostream> #include <string> using namespace Poco::Net; using namespace Poco; int main(int argc, char** argv) { std::string uristr; if (argc >= 2) { uristr = argv[1]; } else { uristr = "http://www.codingnest.com/"; }... try { // prepare session URI uri(uristr); HTTPClientSession session(uri.gethost(), uri.getport()); Tento kód získá webovou stránku a vypíše ji na standardní výstup.

... // prepare path std::string path = uri.getpathandquery(); if (path.empty()) path = "/"; // send request HTTPRequest req(httprequest::http_get, path, HTTPMessage::HTTP_1_1); session.sendrequest(req); // get response HTTPResponse res; std::cout << res.getstatus() << " " << res.getreason() << "\n"; // print response auto& is = session.receiveresponse(res); StreamCopier::copyStream(is, std::cout); // wait std::cin.get(); } catch (Exception &ex) { std::cerr << ex.displaytext() << "\n"; } } // wait std::cin.get(); return -1;

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Kód nemůže najít hlavičkový soubor <Poco/Net/HTTPClientSession.h> a další 25

Poco/Net/HTTPClientSession.h je ve složce c:\data\poco\net\include 26

Musíme upravit nastavení projektu 27

C/C++ > General > Additional Include Directories c:/data/poco/foundation/include c:/data/poco/net/include 28

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Kompilátor nemůže najít PocoFoundationd.lib PocoNetd.lib 30

Tyto soubory jsou v c:\data\poco\lib64 31

Musíme znovu navštívit nastavení... C/C++ > Linker > General > Additional Library Directories c:/data/poco/lib64/pocofoundationd.lib c:/data/poco/lib64/poconetd.lib 32

Práce s knihovnou Balíček se zdrojovým kódem Knihovní hlavičkové soubory.h nebo.hpp Soubory pro stavbu: Makefile,.sln, CMakeLists.txt, apod. Knihovní zdrojové soubory.cpp Kompilace knihovny Naše soubory.cpp,.h,.hpp Soubory.lib nebo.a Soubory.dll nebo.so (dynamické knihovny) Kompilace našeho programu Spustitelný soubor Spuštění našeho programu

Au! Při spuštění nám chybí: PocoFoundationd.dll PocoNetd.dll 34

Tyto soubory jsou v c:\data\poco\bin64 35

Existují dvě řešení této situace: Buďto zkopírujte dotyčné.dll soubory do složky se spustitelným souborem. Nebo přidejte c:\data\poco\bin64 do systémové proměnné Path 36

A už to běží! 37

Knihovna Cinder Umožňuje snadný přístup k rozhraním pro grafické a multimediální aplikace. DirectX a OpenGL (rastrová grafika), Cairo (vektorová grafika), Box2D (fyzikální simulace), OpenCV (počítačové vidění). Pozor: Cinder je k dispozici pouze pro Windows a Mac. Instalace: Stáhněte na libcinder.org a rozbalte stažený.zip soubor. V podsložce samples jsou umístěny ukázkové příklady. V podsložce tools se nachází TinderBox, aplikace pro snadné vytvoření nového projektu.

Cinder je ke stažení na libcinder.org. Zde je také k dispozici dokumentace, ve které naleznete podrobný popis tříd a funkcí, které knihovna poskytuje.

Stažený.zip soubor rozbalte do nějaké složky. 40

V podsložce samples jsou umístěny ukázkové příklady, předem připravený projekt pro Visual Studio je vždy ve složce vc2013. 41

Cinder je (v současné době) kompatibilní pouze s Visual Studio 2013. Lze pracovat ve verzi 2015, verze 2013 ale musí být nainstalovaná a nabídku aktualizace kompilátoru (na obrázku) je nutno odmítnout. 42

Příklady lze rovnou spustit. Není třeba upravovat nastavení projektu. 43

ArcballDemo přístup k OpenGL rasterizovaná grafika ovládání 3D pohledu tažením myši 44

CairoBasicApp vektorová grafika program reaguje na kliknutí myši 45

FalingGearsApp fyzikální simulace reaguje na kliknutí a podržení myši 46

CaptureBasicApp přístup k webkameře 47

Nástroj Tinderbox umožňuje snadné vytvoření nového projektu. Nachází se ve složce tools 48

Děkuji za pozornost. 49