Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет “Львівська політехніка”
Кафедра ЕОМ
/
Звіт
з лабораторної роботи № 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();
}
Результат виконання програми
/
/
/
Висновок
Я ознайомився з технологією та оволодів навиками створення та використання бібліотек динамічного компонування з використанням неявного зв’язування.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!