1 / 17

PROGRAMOWANIE WIZUALNE

Przycisk. Przycisk. PROGRAMOWANIE WIZUALNE ● metoda tworzenia programu za pomoc ą narz ę dzi umo ż liwiaj ą cych wybór standardowych elementów z menu z automatyczn ą generacj ą du ż ej cz ę ś ci kodu ź ród ł owego. MS Windows wieloprocesowy system operacyjny

belva
Download Presentation

PROGRAMOWANIE WIZUALNE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Przycisk Przycisk PROGRAMOWANIE WIZUALNE ●metoda tworzenia programu za pomocą narzędzi umożliwiających wybór standardowych elementów z menu z automatyczną generacją dużej części kodu źródłowego

  2. MS Windows • wieloprocesowy system operacyjny • sprzęg użytkowy C  kilka tysięcy funkcji • programowanie współbieżne START czy jest komunikat NIE obsługa komunikatu TAK czy kom. zakończenia NIE TAK STOP

  3. Tworzenie Programów dla Środowiska MSWs ·Application Programming Interface (API) ·Software Development Kit (SDK) ·biblioteki klas : OWL (Borland), MFC (Microsoft), ATL (Microsoft) ·przekład programu (.exe) zawiera : — treść binarną (rozkazy, dane) —zasoby : ikony, kursory, mapy bitowe, menu,akceleratory, dialogi, teksty

  4. MSWs API MFC A p l i k a c j a  API Aplikacja Źródłowa

  5. class Baza { public : int x; } // class Potomek : public Baza { public: int y; } // Baza* ob = new Potomek; ob -> x; // ok ob -> y; // błąd (( Potomek* ) ob ) -> y ; // ok

  6. VB C# C++ L ...... CVB CC# CC++ CL ...... PAKIET ( CIL  .exe , .dll ) Środowisko .NET

  7. P1 P2 Pn ..... CLASS LIBRARY LOADER JITC BIN EXEC N E T . F r a m e w o r k

  8. pakiet ( assembly ) a - manifest b - metadane opisujące typy c - przekład w CIL d - zasoby mogą być w wielu plikach pakiet.exe PE Header a + b + c + d Start

  9. wspólny system typów CTS • wspólna specyfikacja języka CLS • biblioteka klas platformy FCL • przestrzenie nazw • zbieranie śmieci • wspólne środowisko wykonawcze CLR • kod zarządzany i nie zarządzany

  10. CIL (MSIL) classProgram {staticint Main(string[] args) { int a = 5, b, c; c = a + 3; b = c + 2; return b; } } IL_0000: ldc.i4.5 IL_0001: stloc.0 IL_0002: ldloc.0 IL_0003: ldc.i4.3 IL_0004: add IL_0005: stloc.2 IL_0006: ldloc.2 IL_0007: ldc.i4.2 IL_0008: add IL_0009: stloc.1 IL_000a: ldloc.1 IL_000b: ret

  11. ILDASM C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin .method private hidebysig static int32 Main(string[] args) cil managed { .entrypoint // Code size 12 (0xc) .maxstack 2 .locals init ([0] int32 a, [1] int32 b, [2] int32 c) // MSIL instructions } // end of method Program::Main

  12. Plik .exe ( Release ) File size : 16384 PE header size : 4096 (496 used) (25.00%) PE additional info : 1075 ( 6.56%) Num.of PE sections : 3 CLR header size : 72 ( 0.44%) CLR meta-data size : 1404 ( 8.57%) CLR additional info : 0 ( 0.00%) CLR method headers : 13 ( 0.08%) Managed code : 19 ( 0.12%) !!!!! Data : 8192 (50.00%) Unaccounted : 1513 ( 9.23%)

  13. Asembler int a = 5, b, c; 00000015 xor edi,edi // a 00000017 xor esi,esi // b 00000019 xor ebx,ebx // c 0000001b mov edi,5 // a c = a + 3; 00000020 lea eax,[edi+3] 00000023 mov ebx,eax b = c + 2; 00000025 lea eax,[ebx+2] 00000028 mov esi,eax

  14. classProgram { staticint Main(string[] args) { double a = 5, b, c; c = a + 3; b = c + 2; return 0;   } }

  15. double a = 5, b, c; 0000001a fldz 0000001c fstp qword ptr [esp+8] // a = 0 00000020 fldz 00000022 fstp qword ptr [esp+10h] // b = 0 00000026 fldz 00000028 fstp qword ptr [esp+18h] // c = 0 0000002c fld dword ptr ds:[03731140h] // 5 00000032 fstp qword ptr [esp+8] // a = 5 c = a + 3; 00000036 fld qword ptr [esp+8] 0000003a fadd dword ptr ds:[03731148h] // a + 3 00000040 fstp qword ptr [esp+18h] b = c + 2; 00000044 fld qword ptr [esp+18h] 00000048 fadd dword ptr ds:[03731150h] // b + 2 0000004e fstp qword ptr [esp+10h]

  16. MS Visual Studio ( MFC, C++ ) • 1.0 , ..... , 6.0 • MS Visual Studio.NET ( FCL, C# ) • 2002 , 2003 , 2005 , 2008, 2010, 2012 NET . Framework , NET . Compact Framework • 1.0 , 2.0 , 3.0 , 3.5, 4.0, 4.5, 5.0

  17. C++ Kod Zarządzany słowo kluczowe opis __abstractklasa abstrakcyjna __boxopakowanie (stos  sterta) __delegatezamiana wsk. funkcji na delegację __eventzgłoszenie zdarzenia __finallyblok końcowy obsługi wyjątków __gctyp podlega zbieraniu śmieci __identifierodróżnia identyfikatory od słów kluczowych C++ __interfacewszystkie funkcje składowe są czystymi funkcjami wirtualnymi __nogcnie podlega zbieraniu śmieci __pinzabrania przesuwania przez gc __propertytworzy właściwość __sealednie może być klasą bazową __try_castrzutowanie z ew. wyjątkiem __typeoftyp obiektu zarządzanego __valueutworzenie wartości (stos)

More Related