PROGRAMOWANIE WIZUALNE metoda tworzenia programu za pomoc narzdzi









![CIL (MSIL) class Program { static int Main(string[] args) { int a = 5, CIL (MSIL) class Program { static int Main(string[] args) { int a = 5,](https://slidetodoc.com/presentation_image_h/034ed6bdcc1f01573ab72e6c767a9c1c/image-10.jpg)



![class Program { static int Main(string[] args) { double a = 5, b, c; class Program { static int Main(string[] args) { double a = 5, b, c;](https://slidetodoc.com/presentation_image_h/034ed6bdcc1f01573ab72e6c767a9c1c/image-14.jpg)


- Slides: 16
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 Przycisk
MS Windows • wieloprocesowy system operacyjny • sprzęg użytkowy C kilka tysięcy funkcji • programowanie współbieżne START NIE czy jest komunikat obsługa komunikatu TAK czy kom. zakończenia TAK STOP NIE
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
MSWs API MFC API Aplikacja Źródłowa
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
Środowisko . NET VB C# C++ . . . L CVB CC# CC++ . . . CL PAKIET ( CIL . exe , . dll )
N E PAKIET CLASS LIBRARY T. F LOADER r a JITC m e w BIN EXEC o r k
§ pakiet ( assembly ) a - manifest b - metadane opisujące typy c - przekład w CIL mogą być d - zasoby w wielu plikach pakiet. exe PE Header a + b + c + d Start
§ 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
CIL (MSIL) class Program { static int Main(string[] args) { int a = 5, b, c; IL_0000: ldc. i 4. 5 IL_0001: stloc. 0 IL_0002: ldloc. 0 c = a + 3; IL_0003: ldc. i 4. 3 b = c + 2; IL_0004: add return b; IL_0006: ldloc. 2 } IL_0008: add } IL_0005: stloc. 2 IL_0007: ldc. i 4. 2 IL_0009: stloc. 1 IL_000 a: ldloc. 1 IL_000 b: ret
ILDASM C: Program FilesMicrosoft Visual Studio 8SDKv 2. 0Bin . method private hidebysig static int 32 Main(string[] args) cil managed { . entrypoint // Code size 12 (0 xc) . maxstack 2 . locals init ([0] int 32 a, [1] int 32 b, [2] int 32 c) // MSIL instructions } // end of method Program: : Main
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%)
Asembler int a = 5, b, c; 00000015 xor edi, edi // a 00000017 xor esi, esi // b 00000019 xor ebx, ebx // c 0000001 b 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
class Program { static int Main(string[] args) { double a = 5, b, c; c = a + 3; b = c + 2; return 0; } }
double a = 5, b, c; 0000001 a fldz 0000001 c fstp qword ptr [esp+8] // a = 0 00000020 fldz 00000022 fstp qword ptr [esp+10 h] // b = 0 00000026 fldz 00000028 fstp qword ptr [esp+18 h] // c = 0 0000002 c fld dword ptr ds: [03731140 h] // 5 00000032 fstp qword ptr [esp+8] // a = 5 c = a + 3; 00000036 fld qword ptr [esp+8] 0000003 a fadd dword ptr ds: [03731148 h] // a + 3 00000040 fstp qword ptr [esp+18 h] b = c + 2; 00000044 fld qword ptr [esp+18 h] 00000048 fadd dword ptr ds: [03731150 h] // b + 2 0000004 e fstp qword ptr [esp+10 h]
MS Visual Studio ( MFC, C++ ) § 1. 0 , . . . , 6. 0 MS Visual Studio. NET ( FCL, C# ) § 2002 , 2003 , 2005 , 2008, 2010, 2012, 2013, 2015 NET. Framework , NET. Compact Framework § 1. 0 , 2. 0 , 3. 0 , 3. 5, 4. 0, 4. 5, 5. 0