Створення DLL та їх використання при неявному зв’язування на мові C

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 6 з дисципліни: “Системне програмування” на тему: “Створення DLL та їх використання при неявному зв’язування на мові C” Мета лабораторної роботи Ознайомитись з технологією та оволодіти навиками створення та використання бібліотек динамічного компонування з використанням неявного зв’язування. Теоретичні відомості Завершальним етапом створення програмного продукту є процес збирання (компонування) завантажувального модуля (.exe – файлу). Компонуванням (linking) називають процес створення фізичного або логічного виконуваного файлу (модуля) із набору об’єктних файлів бібліотек для подальшого виконання або під час виконання і вирішення проблеми неоднозначності імен, що виникає при цьому. У разі створення фізичного виконуваного файлу для подальшого виконання компонування називають статичним, коли у такому файлі міститься все потрібне для виконання програми. У випадку створення логічного виконуваного файлу під час виконання програми компонування називають динамічним, у цьому випадку образ виконуваного модуля збирають “на ходу”. Індивідуальне завдання 29. Ввести рядок тексту та два окремі символи. Вилучити з вхідного рядка всі другі символи після того як зустрінеться перший символ. Вивести новий рядок на екран. Код програми .dll dlltest.h #ifndef _DLLTEST_H_ #define _DLLTEST_H_ extern "C" __declspec(dllexport) void char_delete(char *, char, char); #endif // _DLLTEST_H_ dlltest.cpp #include <iostream> #include "dlltest.h" extern "C" __declspec(dllexport) void char_delete(char *str, char char1, char char2) { for (int i = 0; str[i]; ++i) if (str[i] == char1) { const int begin = i + 1; const int length = strlen(str); while (++i < length) for (int j = begin; str[j] && str[j - 1]; ++j) if (str[j] == char2) std::swap(str[j], str[j + 1]); break; } } .exe dlltest.h #ifndef _DLLTEST_H_ #define _DLLTEST_H_ extern "C" __declspec(dllexport) void char_delete(char *, char, char); #endif // _DLLTEST_H_ main.cpp #include <iostream> #include <conio.h> #include "dlltest.h" #define BUFFER 1024 void main() { std::cout << "Enter a string and two characters:" << std::endl; char str[BUFFER]; char char1, char2; std::cin.getline(str, BUFFER); std::cin >> char1 >> char2; char_delete(str, char1, char2); std::cout << str << std::endl; _getch(); } Результат виконання програми / / / Висновок Я ознайомився з технологією та оволодів навиками створення та використання бібліотек динамічного компонування з використанням неявного зв’язування.
Антиботан аватар за замовчуванням

07.05.2017 14:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!