- •1Розробка універсальних додатків для різних типів кодувань символьної інформації
- •1.1Мета роботи
- •1.2Методичні вказівки з організації самостійної роботи студентів
- •1.2.1Типи даних char і wchar_t. Універсальне завдання типу
- •1.2.2Функції для роботи з рядками для ansi і unicode кодувань
- •1.2.3Файл tchar.H. Пошук імен для універсальних функцій
- •1.2.4Визначення типу тексту і перетворення типу кодування тексту
- •1.3Порядок виконання лабораторної роботи
- •2.2.2Загальна характеристика динамічних бібліотек
- •2.2.3Створення статичних бібліотек
- •2.2.4Створення dll
- •2.2.5Використання dll
- •2.2.6Алгоритм шифрування rsa
- •2.3Порядок виконання лабораторної роботи
- •3.3Порядок виконання лабораторної роботи
- •3.5Контрольні запитання і завдання
- •4Керування зовнішніми пристроями. Нестандартні пристрої
- •4.1Мета роботи
- •4.2Методичні вказівки з організації самостійної роботи студентів
- •4.3 Порядок виконання лабораторної роботи
- •4.5Контрольні питання и завдання
- •5.2.2Інформація про файлову систему пристрою
- •5.2.3Визначення вільного місця на пристрої
- •5.3Порядок виконання лабораторної роботи
- •5.5Контрольні запитання і завдання
- •7.3Порядок виконання лабораторної роботи
- •7.5Контрольні запитання і завдання
- •8 Керування потоками
- •8.1Мета роботи
- •8.2Методичні вказівки з організації самостійної роботи студентів
- •8.3Порядок виконання лабораторної роботи
- •8.5Контрольні питання й завдання
- •9 Керування розподілом пам'яті (wіnapі)
- •9.1Мета роботи
- •9.2Методичні вказівки з організації самостійної роботи студентів
- •9.3Порядок виконання лабораторної роботи
- •9.5Контрольні питання й завдання
- •10 Синхронізація процесів і потоків
- •10.1Мета роботи
- •10.2Методичні вказівки з організації самостійної роботи студентів
- •10.3Порядок виконання лабораторної роботи
- •10.5 Контрольні питання й завдання
- •Список використаних джерел
- •Додаток а Стандартні функції для введення – виведення даних для стандартних пристроїв. Функції для роботи з файлами.
2.2.2Загальна характеристика динамічних бібліотек
Динамічні бібліотеки (Dynamic Link Library - DLL), файли з розширенням DLL, завантажуються під час завантаження модуля, який використовує бібліотеку, або під час його виконання.
Переваги DLL:
бібліотеки не залежать від середовища, в якому вони створені. Так, бібліотеку, яку було створено в середовищі С++ Builder, може бути використано в середовищі Visual Studio та навпаки;
при зміні коду бібліотеки не потрібна повторна компоновка додатків, які використовують цю бібліотеку, ось чому операційна система використовує цей тип бібліотек для модулів, які можуть змінюватися в залежності від версії та в разі помилок;
якщо декілька додатків використовують одну і ту ж бібліотеку, копія цієї бібліотеки зберігається в пам’яті тільки один раз.
Недоліки DLL:
окрім програми, яка виконується необхідно мати додатковий модуль – саму бібліотеку;
функції DLL використовувати складніше, ніж функції статичної бібліотеки.
Решта переваг та недоліків DLL залежать від режимів використання бібліотеки цього типу.
Порівняйте переваги і недоліки кожного типу бібліотек і зробіть висновки по тому, коли треба використовувати кожний тип бібліотеки.
2.2.3Створення статичних бібліотек
Незалежно від середовища, в бібліотеку можна підключати C++, C, OBJ файли. Файли на мові Асемблер мають особливості, які залежать від середовища, тому краще усі функції писати з заголовком на мові С.
Розглянемо формування статичної бібліотеки для Visual Studio 2008, для інших середовищ бібліотеки створюються подібно.
Спосіб 1. Використання середовища. Виконати ProjectWin32 Project і далі обрати в Application Settings - Static library і далі натиснути Finish. До проекту можна додавати як нові компоненти, так і вже існуючі. у тому числі інші статичні бібліотеки. Серед модулів, які додаються не може бути модуля з визначенням головної функції. В результаті буде сформовано файл *.lib. Ім’я бібліотеки співпадає з іменем проекту, його можна замінити. Бібліотека вміщує довідник функцій, в якому для кожної функції визначається її відносна адреса і розмір. Після довідника розташовані самі функції.
Недолік цього способу – треба ввійти в середовище для розробки при довільних змінах в бібліотеці, наприклад, додавання коментаря.
Спосіб 2. Використання командного файлу. Для створення бібліотеки необхідно виконати:
компіляцію усіх файлів з розширенням c, cpp (програма cl.exe);
створення бібліотеки з окремих об’єктних модулів (програма lib.exe).
При завданні програм для виконання необхідно задавати повне ім’я файлу.
Для програми cl.exe дуже багато параметрів, але обов’язковими є тільки:
/I " Шлях до каталогу include Visual Studio ", якщо використовуються стандартні файли заголовків;
/c – тільки компіляція (компонувальник не використовується);
Приклад рядка для виклику cl.exe, якщо каталог для двійкових файлів"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin, каталог для стандартних файлів – заголовків: c:\Program Files\Microsoft Visual Studio 9.0\VC\include, а в бібліотеку треба підключити функції з файлу static.cpp:
"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" /I "c:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c static.cpp
Для перевірки успішності завершення компіляції (не було помилок компіляції) використовуємо рядок:
if ErrorLevel 1 goto merror
Для програми lib.exe в якості параметрів задаються:
/OUT: Імя файлу – бібліотеки з розширенням lib;
Імена об’єктних файлів, та бібліотек, які необхідно підключити до бібліотеки.
Приклад рядка для виклику lib.exe, якщо каталог для двійкових файлів"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin і в бібліотеку підключається файл static.obj:
"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\lib.exe" /OUT:static.lib static.obj
Для перевірки успішності створення бібліотеки використовуємо рядок:
if ErrorLevel 1 goto merror
Після створення бібліотеки знищуємо непотрібні файли типу .obj (рядок del *.obj)
Таким чином, командний файл (назвемо його static.cmd):
"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" /I "c:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c static.cpp
if ErrorLevel 1 goto merror
"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\lib.exe" /OUT:static.lib static.obj
if ErrorLevel 1 goto merror
del *.obj
echo ok
goto mok
:merror
echo error
:mok
Порівняйте бібліотеки, створені в середовищі, та за допомогою командного файлу!