Advertisement
moldovexc

Честен труд

May 26th, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.00 KB | None | 0 0
  1. ps1 - 1-6 лекция
  2. ps2 - 7-12 лекция
  3. вс обозначено със - е подредено спрямо мястото им в лекцията.
  4.  
  5. 1 лекция - Въведение :
  6.  
  7. - съкращения (ATL,MFC,API,GDI....DDL,OLE)
  8. - Интегрираната развойна среда MS Visual C++
  9. - Файлове, създавани в средата на Microsoft Visual C++
  10. - Модел на програмирането под Windows( връзка на кода с идентификаторите на ресурси и контроли)
  11.  
  12. 2 лекция - Ресурси и контроли :
  13.  
  14. - Създаване и редактиране на ресурсите на едно приложение(AppWizard,ResourceView,работа с ресурси)
  15. ID{ 1 символ указва вида на ресурса като: M (menu)/ D (dialog)/ I(icon) / A
  16. (accelerator) / (string table)/…. }_username
  17. - Диалогови Елементи (Диалогови Контроли)(toolbox)
  18. - Методи за управление на диалози.(работа с диалози,dlgbox,msgbox,get,set)
  19.  
  20. 3 лекция - Особености на програмирането под Windows:
  21.  
  22. - Основното и различие от предшествениците(„стесняващата се многозадачност”)
  23. - Втората особеност на Win32 е 32-разрядната адресация(може да се разполага с 4 Г байта ОП)
  24. - подръжка на ниво процеси и потоци;
  25. - възможност за синхронизация на потоците;
  26. - съществуването на файлове, които са проектируеми в паметта;
  27. - наличие на механизъм за обмен на данните между процесите.
  28. - В Win32 процес се нарича всяка изпълняваща се програма.
  29. - Терминът „поток” (tread) или „нишка”
  30. - синхронизация на потоците.
  31. - светофари(semaphores), изключващи светофари (mutex), събития (event),критически секции (critical section).
  32. - много по-практично е програмите да работят с виртуални адреси
  33. - механизъм на свързване
  34. - странична организация на паметта (paging).
  35. - логическото адреснопространство на всеки процес се разбива на отделни блокове, наричани страници.
  36. - Диспечерът на Виртуалната памет отбелязва отдавна неизползваните страници и ги изпраща на твъдия диск.
  37. - Разделението на данните
  38. - Основните концепции в ОС Windows могат да се формулират като: (преместваемост на изпълнимите приложения; обектна ориентация на програмирането на приложенията.)
  39. - Основни Свойства на ОС (MS-DOS +Windows)
  40. - Строеж на средата Windows(фрагментирана Оперативната Памет)
  41. - Методи за работа с менюта (get,load,getsub,trackpopup,destroy,check,enable -disable,insert(add),delete)
  42.  
  43. 4 лекция - Техника за създаване на приложение:
  44.  
  45. - разширения(ASM,.C (*.CPP),EXE,RES,DEF,DLL...)
  46. - Алгоритъм за създаване на WINDOWS приложение
  47. - Файл за описание на модула *.DEF
  48. - Средства за връзка между приложенията в средата на Windows.
  49. - Динамични библиотеки Dynamic Link Library (DLL)
  50. - Събития – съобщения(Структура на съобщенията,32бита – код (хендъл) на обект)
  51. - Главната обслужваща функция за всеки обект има един и същ формат: long WinApi WndProc(hWnd, UINT message, long wParam, long lParam)
  52. - Обмен на съобщения. Обработка и изпращане на съобщения.Синхронизация. Диспечер на съобщенията.
  53. - Типове на данните в Windows(HANDLE,HWND,BYTE,WORD,DWORD,UINT,LONG,BOOL,LPSTR)
  54. - Унгарски запис
  55. - Методи за управление на диалогови контроли
  56. - Работа с числови данни в диалоговите елементи(getdlg,setdlg,sprintf,&stopstring)
  57. - sendlg,hdlg,- ID_of_DialogContro,- Processing_Way,listbox,combobox
  58. - radio and check boxes - BM: BM_SETCHECK, BM_GETCHECK;
  59. - edit box - WM: WM_GETTEXT, WM_SETTEXT.
  60. - Параметър Index
  61. - IsDlgButtonChecked(hDlg, ID) ,ChechDlgButton(hDlg, ID, (BST_CHECKED or BST_UNCHECKED) )
  62.  
  63. 5. Лекция - Управление на прозорци в средата на Windows:
  64.  
  65. - Типове прозорци - прозорецът на главната рамка ( main frame window)
  66. - WS_OVERLAPED, WS_POPUP, WS_CHILD
  67. - Свойства на прозорците (Помощни прозорци(WS_POPUP), Дъщерни прозорци (WS_CHILD),WM_COMMAND)
  68. - Модален диалог и контролите на Windows с общо предназначение
  69. - Диалогова кутия и Диалогови елементи
  70. - Работна област на прозорците
  71. - Контекст на устройствата. (GDI). контекст нау стройството
  72. - Текущо „състояние” на контекста на устройствата включва
  73. - Процесите при извеждане към екрана или принтера
  74. - ///……… графични функции
  75. - Език за дефиниране на ресурси
  76. - Видове ресурси (предефинирани в Windows, ObjectWindows (OWL) – допълнително по-мощтни ресурси (обекти))
  77. - Описание на МЕНЮ (*.MNU)
  78. - Описание на диалогова кутия (*.DLF)
  79. - Друг пример на фрагмент от *.RC файл
  80. - Методи за работа с ProgressBar контрол и таймери
  81. - Функция, изпращаща съобщения към диалогов елемент ProgressBar (SendDlgItemMessage)
  82. - Методи за работа с таймери. Създаване на таймери и установяване на стартовата стойност и стъпката за промяна(SetTimer) # include <commctrl.h> #define TIMER1 500 WM_TIMER
  83. - Спиране работата на указан таймер KillTimer(hWnd, nIDEvent)
  84. - Връщане идентификатора (хендела) на обекта в прозотрец hDlg, в който е указания с control ID контрол. HWND GetDlgItem(hDlg, control ID);
  85. - Установяване на състояние на достъпност или недостъпност на прозорец EnableWindow(hWnd, bEnable);
  86. - Показване на прозорец или контрол ShowWindow((hWnd, bEnable);
  87. - Координати на мишката. int LOWORD(lParam) – връща x- координата на на позицията на мишката of mouse;int y = HIWORD(lParam) връща the y- координата на на позицията на мишката;
  88.  
  89. 6. Лекция - Структура на WIN32-приложение. Примерна програма за управление на прозорец:
  90.  
  91. - Основни правила и ограничения при програмиране под WINDOWS
  92. - Структура на Windows – приложения. главната функция WinMain. WinMain трябва да изпълни следните действия
  93. - цикъл за обработка , предварителна обработка, функцията на прозореца
  94. - Процес на обработка на съобщенията .Структура MSG. Хендъл на прозорец. процеса на обработка на съобщенията.WINDOWS.H
  95. - WinMain() WNDCLASSEX RegisterClassEx CreateWindow() GetMessage TranslateMessage DispatchMessage
  96. - Цикъл за обработка на съобщенията
  97. - Функция GetMessage(): Функция TranslateMessage(): Функция DispatchMessage():
  98. - Прозоречна процедура. Процедурата може да има всякакво име, но обикновено е WndProc. LRESULT CALLBACK WndProc(
  99. - DefWindowProc(); * Пример за прозоречна процедура */
  100. - Класове на прозорците, регистрация на нов клас. RegisterClass() RegisterClassEx() Структура WNDCLASSEX (cbSize,style,lpfnWndProc....)
  101. - Създаване на прозорец CreateWindow() или CreateWindowEx(). (lpClassName,lpWindowName,dwStyle...) ShowWindow(hWnd, SW_SHOW);
  102. - Шаблон на програма за windows
  103. - Листинг на минимално приложение
  104. - Подробно описание на функциите и техните параметри
  105.  
  106. 7. Лекция - Обекти, полиморфия и наследяване на обекти в средата на Windows:
  107.  
  108. - Същност и модел на обектите. Обектен модел на организация на данните
  109. - „капсуловане” (затваряне) Съобщенията между обектите се осъществяват като:
  110. - Обекти в Windows могат да съдържат:
  111. - Обектно програмиране в средата на Windows
  112. - обект, клас, капсулиране (затваряне), наследяване и полиморфизъм
  113. - Методът на базовия клас може да се обяви като виртуален (с атрибут virtual)
  114. - Наследяване на свойства в Windows. Йерархичната структура на обектите се характеризира с
  115. - Полиморфията е свойство на обектите да реализират определена абстрактна функционалност по свой специфичен начин и налага използването на стандартизирани методи
  116. - Полиморфия в Windows. Полиморфия при методите. Полиморфия при съобщенията
  117. - Съобщенията в Windows са няколко хиляди и са точно дефинирани. Често използвани стандартни съобщения:
  118. - Функции за изпращане на съобщения Send Message NotifyMessage PostMessag
  119. - Работа с файлове
  120.  
  121. 8. Лекция - Графични функции в VC++:
  122.  
  123. - Update and Painting Methods. Основни средства. Цветови модел RGB (Red-Green-Blue)
  124. - графично устройство или GDI (graphical device interface)
  125. - контекст на устройството
  126. - Създаване на DC или зареждане на този асоцииран с прозореца GetClientRect(hWnd, &rt);
  127. - Ползване на цветове. Colors
  128. - Извеждане на текст в графичен режим Рисуващи средства BOOL CreatePen BOOL CreateSolidBrush BOOL CreateHatchBrush BOOL CreatePatternBrush
  129. - Рисуване Ellipse MoveToEx LineTo POINT p[n]; Polygon(hdc, p,n);
  130. - Поставяне на изображения от един DC в друг без промяна на размера му. Поставяне на изображения от един DC в друг с промяна на размера му.
  131. - Пример за статична графика. Пример за рисуване с мишката при натиснат ляв бутон. Пример за рисуване с цвят избран от палитра
  132. - Пример за задаване на размер на правоъгълник с мишката и поставянето на изображение в него . Пример за движение на обект в прозорец
  133.  
  134. 9. Лекция - Библиотека MFC (Microsoft Foundation Class Library):
  135.  
  136. - Библиотека MFC е базов набор от класове .200 члена. капсулирайки функциите на АРI с класовете от MFC
  137. - CWinApp CFrameWnd theApp CApp CMainWin InitInstance()
  138. - Примерен Листинг на минимална програма създадена на основата на класа библиотеки MFC. #include <afxwin.h> AFXWIN.H. създава екземпляр от класа CАpp
  139. - заграждат картата на съобщенията на главния прозорец, като между тях трябвада се намира извикването на функцията за обработка на постъпващите съобщения
  140. - Обработка на съобщения WM_CHAR, WM_PAINT, WM_MOVE, WM_SIZE, WMLBUTTONDOWN
  141. - За организацията на обработката на съобщенията е необходимо да се изпълнят следните действия:
  142. - Имената на макрокомандите се състоят от префикса ON_,ON_WM_LBUTTONDOWN(), ON_WM_LBUTTONUP(), ON_WM_PAINT. ON_COMMAND() BEGIN_MESSAGE_MAP()
  143. - OnButtonDown(). Прототип на функцията – обработчик на съобщения трябва да е поместен в описанието на класа на прозореца пред макроса DECLARE_MESSAGE_MAP().
  144. - При описанието се използва спецификатор от типа afx_msg. WM_LBUTTONDOWN
  145. - Модификация на картата на обработка на съобщенията. карта на съобщенията. макрокоманда на съобщението
  146. - Включване в описание на класа на прозореца на прототип на функцията – обработваща съобщението
  147. - В програмата се включва реализацията на функцията – обработваща съобщението
  148. - Пример на програма обработваща съобщения. Контекст на устройствата. указател за обекта-прозорец, обикновено „this”.
  149. - Съобщение WM_PAINT Генерация на съобщението WM_PAINT Примерна програма message handling.hpp
  150. - Съобщение WM_TIMER. За установяване на таймер се използва следната функция:
  151. - Съобщенията от таймера се обработват с функцията: afx_msg void OnTimer(UINT Id);
  152. - Съобщение WM_DESTROY. Пример на програма за извеждане на текуща дата и време. message handling II.hpp
  153. - Включване на меню в приложението this->Create(0, "Приложение с меню", WS_OVERLAPPEDWINDOW,rectDefautl, 0, "MYMENU");
  154. - Съобщение WM_COMMAND Акселератори Прозорец със съобщения
  155. - Пример за използване на меню, акселератори и прозорец със съобщения menu.hpp menu.cpp
  156. - Диалози - Класове MFC за контроли. В MFC се съдържат класове за всички стандартни элементи за управления . Те са породени от класа CWnd. Основни класове за управления:
  157. - Класс CDialog. Обработка на съобщения от диалози Извикване на диалога virtual int CDialog::DoModal(); Затваряне на диалога void CDialog::EndDialog(int RetCode);
  158. - Примерна програма с диалогов прозорец resource.h Dialogs.hpp
  159. - Базови класовете на библиотеката MFC - CView, CEditView, CFormView, CListView, CHtmlView, CRichView, CScrollView, CTreeView.
  160. - Инструментални средства.Интегрирана развойна среда MS Visual C++ (Integrated Development Environment – (IDE))
  161. - Нови концепции в Windows. Нов изпълняем формат: ххх.ЕХЕ. NEW EXECUTABLE FORMAT
  162. - Отнася за : приложения : *.ЕХЕ; динамични библиотеки *.DLL; някои двоични файлове: шрифтове;драйвери за отделните устройства.
  163.  
  164. 10. Лекция - Работа с динамична библиотека (DLL):
  165.  
  166. - Използване на DLL. Библиотеки за импортиране. Файл име.lib, използван принеявно включване на DLL . библиотеки за импортиране (import libraries)
  167. - Съгласуване на интерфейса extern "С" int MyOldCFunction(int myParam); #include "MyCLib.h"
  168. - Неявно включване на DLL. Търсенето на DLL файлове ОС осъществява вследната последователност. в каталога, в който се намира ЕХЕ-файла. в текущия каталог на процеса. в системния каталог на Windows
  169. - Динамично зареждане и отделяне на DLL. Зареждане на обикновена DLL HINSTANCE hMyDll; if((hMyDll=::LoadLibrary("MyDLL"))==NULL)
  170. - ::LoadLibrary typedef typedef int (WINAPI *PFN_MyFunction)(char *); PFN_MyFunction pfnMyFunction;
  171. - hMyDll=::LoadLibrary("MyDLL"); pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hMyDll,"MyFunction"); int iCode=(*pfnMyFunction)("Hello");
  172. - ::GetProcAddress. pfnMyFunction=(PFN_MyFunction)::GetProcAddress(hMyDll, MAKEINTRESOURCE(1)); ::FreeLibrary: ::FreeLibrary(hMyDll); FindResource LoadResource
  173. - Пример за DLL и способите за зареждане. В хедърния файл се определя макроконтстанта EXPORT CALLBACK MyDLL.h
  174. - #define EXPORT extern "C" __declspec (dllexport) EXPORT int CALLBACK MyFunction(char *str);MyDLL.cpp #include <windows.h> #include "MyDLL.h"
  175. - int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved) EXPORT int CALLBACK MyFunction(char *str)
  176. - Пример за неявно включване на DLL в приложение. Пример за динамично зареждащо DLL приложение
  177. - Създаване на DLL. Функция DllMain. Структура на най-проста функция DllMain може да изглежда така:
  178. - Експортиране на функции от DLL Метод __declspec (dllexport). Файлове за определяне на модула GetProcAddress () MyFunction @1 NONAME
  179. - Eкспортирaне на класове
  180.  
  181. 11. Лекция - ActiveX технологии:
  182.  
  183. - Технологии ActiveX. АctiveX включва клиентска и сървърна части, а така също и библиотеки за разработващия
  184. - Програмни елементи ActiveX. Active Scripting. Документите ActiveX Виртуалната машина Java ActiveX Server Framework .Средствата за разработване
  185. - Основни предимства на използването на технологията ActiveX
  186. - Клиентската технология ActiveX (Active Desktop) . Сървърна технология ActiveX (Active Server)
  187.  
  188. 12. Лекция - Приложения с БД
  189. - Създаването на приложения, които използват база данни за C++ става със следната процедура:
  190. - Създаване на СОМ компонента на Visual C++
  191. - Най-просто създаването на MFC компонента е да се заменят няколко функции в готов шаблон на външна компонента:
  192. - C1CGetImageFragment 1CGetImageFragment.cpp MyAddIn.cpp MyAddIn.h enum Methods g_MethodNames g_kClassNames GetParamDefValue HasRetVal CallAsFunc Manifest.xml
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement