Biblioteki DLL. 8 marca 2013

Podobne dokumenty
Informatyka I : Tworzenie projektu

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Instrukcja laboratoryjna cz.3

Programowanie Niskopoziomowe

Programowanie niskopoziomowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

SFML. (Simple and Fast Multimedia Library)

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Jak działają programy przechwytujące i. Hak na Windows

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

Ada-95. Dariusz Wawrzyniak

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Tworzenie oprogramowania

Konsolidacja (linking)

Metodyki i techniki programowania

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Microsoft Foundation Classes

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Geneza rejestru systemu Windows

Wstęp do programowania

Przechwytywanie wywołań funkcji w bibliotekach DLL. API hooking w praktyce.

Tematy dyplomów inżynierskich 2009 Katedra Inżynierii Oprogramowania

Komunikacja i wymiana danych

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Plan zajęć studium podyplomowego PSPiZK-NET na rok

MentorGraphics ModelSim

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Allegro5 część 1 - Witaj Świecie! Projekt, inicjalizacja, tworzenie okna, czcionki. Autor: Kamil Krzyszczuk - C mons

(Pluggable Authentication Modules). Wyjaśnienie technologii.

I - Microsoft Visual Studio C++

Podstawy programowania. Wprowadzenie

Programowanie w języku C++ z użyciem Windows API

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Najnowsza wersja dokumentu dostępna pod adresem

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

SYNCHRONIZACJA W APLIKACJACH MOBILNYCH

Języki i paradygmaty programowania

MICROSOFT WINDOWS INSTALLER TWORZENIE INSTALATORÓW W ŚRODOWISKU VISUAL STUDIO.NET

XML w.net. Dominik Baś nr alb Wrocław, 29 maja 2007

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Dokumentacja użytkownika Dla edytora metadanych zgodnego z normą ISO Autor: Kopaoczyk Bartosz

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Dokumentacja końcowa projektu z ZPR

Instrukcja laboratoryjna nr.2

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

System wspomagania zarządzania wirtualizacją

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16

Komputerowe wspomaganie eksperymentu 5

REFERAT PRACY DYPLOMOWEJ

Utworzenie pliku. Dowiesz się:

Smarty PHP. Leksykon kieszonkowy

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

Instytut Politechniczny

Komputery przemysłowe i systemy wbudowane

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Warsztaty ASP.NET. Wprowadzenie do identyfikacji i autoryzacji użytkowników. Tomasz Janczyszyn WE, Informatyka, Rok III

dr inż. Jarosław Forenc

Język UML w modelowaniu systemów informatycznych

Programowanie Komputerów 2FD. Materiały pomocnicze do laboratorium

1. Wybierz File New Application. Pojawi się nowa aplikacja w Delphi.

Opisy efektów kształcenia dla modułu

Praktyczne wykorzystanie elementów raportowania Microsoft Project 2010 /Project Server 2010 Sesja 5 PowerPivot & PowerView Bartłomiej Graczyk

Metodyki i techniki programowania

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Podstawy programowania

dr inż. Jarosław Forenc

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Technologie Map Cyfrowych

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Podłączanie bibliotek Zapis danych do pliku graficznego Generowanie promienia pierwotnego Import sceny z pliku Algorytm ray tracingu

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

FAQ: /PL Data: 16/11/2007 Programowanie przez Internet: Konfiguracja modułów SCALANCE S 612 V2 do komunikacji z komputerem przez VPN

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2017

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Rozdział z książki Visual Studio Tworzenie aplikacji Windows w języku C# Helion 2018

WPROWADZENIE DO INFORMATYKI

AUTODESK ECOTECT ANALYSIS DLA POCZĄTKUJĄCYCH

Zaawansowane aplikacje internetowe - laboratorium

Microsoft Visual C Express Edition

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Języki i paradygmaty programowania - 1

Spis treści TRYB GRAFICZNY SYSTEMU WINDOWS - PODSTAWY OBSŁUGI WYBRANEGO ŚRODOWISKA PROGRAMISTYCZNEGO. Informatyka 2

Instrukcja laboratoryjna cz.6

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Transkrypt:

Biblioteki DLL 8 marca 2013

Plan prezentacji : Czym są biblioteki DLL? Łączenie statyczne, a łączenie dynamiczne. Zalety i wady bibliotek DLL. Tworzenie własnych bibliotek. Statyczne łączenie bibliotek. Dynamiczne łączenie bibliotek. Inne zastosowania bibliotek DLL. Źródła

Czym są biblioteki DLL? (1/2) Biblioteka współdzielona (ang. shared library, shared object) - jednolita, kompletna biblioteka ładowana w całości do pamięci podczas uruchamiania programu. Raz załadowana może być wykorzystywana przez wiele programów (jak wskazuje nazwa, jest współdzielona pomiędzy programami) bez potrzeby ponownego jej ładowania. (Źródło : Wikipedia - Biblioteka dynamiczna)

Czym są biblioteki DLL? (2/2) DLL (z ang. Dynamic-Link Library - biblioteka łączona dynamicznie) - w środowisku Microsoft Windows biblioteka współdzielona (z ang. shared library), która przechowuje implementacje różnych podprogramów programu lub zasoby programu. Podprogramy i zasoby zawarte w bibliotece DLL mogą być wykorzystane bezpośrednio lub pośrednio (za pośrednictwem innej biblioteki DLL) przez dowolny plik wykonywalny, sama biblioteka DLL nie jest samodzielnym programem. (Źródło : Wikipedia - DLL)

Łączenie statyczne, a łączenie dynamiczne. Statyczne łączenie biblioteki DLL - polega na ładowaniu jej do pamięci podczas uruchamiania programu i pozostawieniu jej tam aż do zakończenia jego działania. Dynamiczne łączenie biblioteki DLL - polega na ładowaniu jej do pamięci w momencie określonym przez programistę, oraz usuwaniu jej z pamięci również w momencie określonym przez programistę.

Zalety i wady bibliotek DLL oraz różnice pomiędzy łączeniem statycznym i dynamicznym. Zalety i wady bibliotek DLL : Przenośność Prostota implementacji Oszczędność pamięci Szybkość działania Obsługa błędów Zmiany w locie

Tworzenie własnej biblioteki DLL : Zawierającej funkcje (1/2) Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 01_dll_fun 4 OK Zmiana typu projektu : 1 Project Properties 2 Configuration Propertiers General 3 Configuretion Type : Dynamic Library (.dll)

Tworzenie własnej biblioteki DLL : Zawierającej funkcje (2/2) Dodanie plików : 1 Project Add Existing Item... 2 01_dll_fun/dll_fun.h 3 Project Add Existing Item... 4 01_dll_fun/dll_fun.cpp

Tworzenie własnej biblioteki DLL : Zawierającej klasy (1/2) Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 02_dll_class 4 OK Zmiana typu projektu : 1 Project Properties 2 Configuration Propertiers General 3 Configuretion Type : Dynamic Library (.dll)

Tworzenie własnej biblioteki DLL : Zawierającej klasy (2/2) Dodanie plików : 1 Project Add Existing Item... 2 02_dll_fun/dll_class.h 3 Project Add Existing Item... 4 02_dll_fun/dll_class.cpp

Tworzenie własnej biblioteki DLL : Informacje dodatkowe Funkcja DllMain : BOOL WINAPI DllMain ( HINSTANCE hinstdll, \\ Uchwyt do biblioteki. DWORD fdwreason, \\ Wczytywanie czy usuwanie. LPVOID lpvreserved \\ Statycznie czy dynamicznie. ); Źródło : http//msdn.microsoft.com/en-us/library/windows /desktop/ms682583%28v=vs.85%29.aspx

Statyczne łączenie bibliotek : Zawierających funkcje Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 03_stat_fun 4 OK Dodanie plików : 1 Project Add Existing Item... 2 03_stat_fun/stat_fun.cpp 3 Project Add Existing Item... 4 01_dll_fun/dll_fun.h 5 Project Add Existing Item... 6../01_dll_fun/Debug/dll_fun.lib

Statyczne łączenie bibliotek : Zawierających klasy Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 04_stat_class 4 OK Dodanie plików : 1 Project Add Existing Item... 2 04_stat_class/stat_class.cpp 3 Project Add Existing Item... 4 02_dll_class/dll_class.h 5 Project Add Existing Item... 6../02_dll_class/Debug/dll_class.lib

Dynamiczne łączenie bibliotek : Zawierających funkcje Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 05_dyna_fun 4 OK Dodanie plików : 1 Project Add Existing Item... 2 05_dyna_fun/dyna_fun.cpp

Dynamiczne łączenie bibliotek : Zawierających klasy Przebudowa biblioteki z klasą. Tworzenie nowego projektu : 1 File New Project... 2 Visual C++ Empty Projects 3 Name : 06_dyna_class 4 OK Dodanie plików : 1 Project Add Existing Item... 2 06_dyna_class/dyna_class.cpp

Żródła Online : http://msdn.microsoft.com/en-us/library/windows /desktop/ms682589%28v=vs.85%29.aspx http://cpp0x.pl/kursy/kurs-winapi- C++/Zaawansowane/DLL/198 Offline : Richard C. Leinecker i Tom Archer, Visual C++ 6. Vademecum profesjonalisty, Gliwice : Helion 2000 Ivor Horton, Visual C++ 2005. Od podstaw, Gliwice : Helion 2007 Jacek Matulewski, Maciej Pakulski, Dawid Borycki, Bartosz Biały, Piotr Pepłowski, Michał Matuszak, Daniel Szlag, Dawid Urbański, Visual C++. Gotowe rozwiązania dla programistów Windows, Gliwice : Helion 2010