Содержание
- 2. План лекции №3 Назначение и классификация библиотек; Соглашения по вызову; Создание статических библиотек; Использование статических библиотек;
- 3. Назначение и классификация библиотек Назначение: Повторное использование кода. Используются если: Функции из библиотеки будут использоваться в
- 4. Назначение и классификация библиотек Классификация библиотек: библиотеки на языках программирования (библиотеки классов, шаблонов, функций…). Компилируются вместе
- 5. Соглашения по вызовам В одном приложении можно использовать библиотеки, написанные на разных языках; язык написания вызывающей
- 6. Соглашения по вызовам Заголовок функции: Тип результата [Соглашение] Имя ([Параметры]); Например: int Sum(int , int); void
- 7. Создание статических библиотек Создать проект для статической библиотеки: File->New->Projects-> Visual C++ -> Win32 -> Win32 Console
- 8. Создание статических библиотек. Шаг 1
- 9. Создание статических библиотек. Шаг 2
- 10. Создание статических библиотек. Шаг 3
- 11. Создание статических библиотек. Шаг 3
- 12. Создание статических библиотек. Шаг 4 в каталог заголовочных файлов добавить заголовочный файл для библиотеки
- 13. Заголовочные файлы. Правила создания В нем задают: заголовки всех функций, которые входят в библиотеку (интерфейс библиотеки);
- 14. Заголовочные файлы. Обеспечение одноразовой трансляции Необходимо обеспечить трансляцию файла только один раз (в противном случае будет
- 15. Разработать библиотеку для выполнения арифметических операций: сложения с учетом возможного переполнения (+) и вычисления НОД для
- 16. z = x + y; Как определить был перенос или нет? 7 1 x f +
- 17. // LibHeader.h #ifndef _LIB_HEADER_H #define _LIB_HEADER_H unsigned int __stdcall AddWithCarry( unsigned int , unsigned int, unsigned
- 18. // StaticLib.cpp #include "stdafx.h" #include "LibHeader.h" unsigned int __stdcall AddWithCarry( unsigned int a, unsigned int b,
- 19. ( Продолжение. Начало на предыдущем на следующем слайде ) void __stdcall NOD( unsigned int a, unsigned
- 20. Построение статической библиотеки. если в Решении (Solution) несколько проектов - выбрать пункт контекстного меню Set As
- 21. Главная программа для использования статической библиотеки. Создание
- 22. Главная программа для использования статической библиотеки. Создание
- 23. Главная программа для использования статической библиотеки. Создание в ApplicationSettings оставить Console Application и Precompiled header; Откроется
- 24. Главная программа для использования статической библиотеки. Настройки. Использовать контекстное меню или выбрать пункт главного меню Project->
- 25. Главная программа для использования статической библиотеки. Настройки.
- 26. Использование статических библиотек. Рекомендации В одном Решении (Solution) создать 2 проекта: проект для библиотеки и проект
- 27. #include "stdafx.h" #include "LibHeader.h" unsigned int first=0xffffffff, second=0xffffffff, result, carry; int _tmain(int argc, _TCHAR* argv[]) {
- 28. Главная программа для использования статической библиотеки. Ссылка на библиотеку. Пункт меню Project->References.. ->Add New Reference..->выбрать имя
- 29. Главная программа для использования статической библиотеки . Построение и запуск программы. выбрать пункт меню Set As
- 30. Каталоги с Решением (solution), содержащим оба проекта. Имя Решения обычно совпадает с именем первого созданного в
- 31. Главная программа для использования статической библиотеки . Результаты работы программы: на экран или в файл. Запуск
- 32. Достоинства: просто использовать; исполняемый файл один (.exe). Недостатки: платформенно зависима; загружается в память с каждым экземпляром
- 33. библиотеки применяются для повторного использования кода; статическая библиотека - это библиотека объектных модулей; для использования статической
- 34. План лекции №4 Создание динамических библиотек; Использование динамических библиотек. Статический режим; Использование динамических библиотек. Динамический режим;
- 35. Динамические библиотеки (Dynamіc Lіnk Lіbrary - DLL) Загружаются одновременно с программой (статическая загрузка) или во время
- 36. Функция, которая импортируется - это функция из DLL, которая вызывается (используется) в другой программе. Функции, которые
- 37. Исходя из вышесказанного, в файле заголовков (.h) информация о внешних функциях должна быть разной: для самой
- 38. #ifndef _UNIVERSAL_H #define _UNIVERSAL_H #ifdef _STATIC #define PREFIX #else #ifdef _USRDLL #define PREFIX __declspec(dllexport) #else #define
- 39. Динамические библиотеки Создание: Выбрать проект типа Visual C++-> Win32; в ApplicationSettings выбрать DLL Добавить в проект
- 40. Динамические библиотеки 1 Статическая загрузка (загрузка во время загрузки приложения, которое использует DLL) - если нет
- 41. DEF файл Добавляется в проект DLL (в папку ресурсов) для сохранения возможности обращения к функциям по
- 42. Правила использования функций WIN API Необходимо подключить заголовочный файл Windows.h Все функции имеют соглашения по вызову
- 43. Функции для работы с DLL в режиме динамической загрузки HMODULE WINAPI LoadLibrary( LPCTSTR lpFileName ); BOOL
- 44. Алгоритм поиска DLL Каталог, в котором находится исполняемый модуль текущего процесса. Текущий каталог (GetCurrentDirectory). Системный каталог
- 45. Главная программа для DLL в режиме динамической загрузки #include "stdafx.h" #include #include #include “universal.h“ typedef unsigned
- 47. Скачать презентацию