Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи № 6
з дисципліни
" Системне програмування"
Львів – 2012
Тема: СТВОРЕННЯ БІБЛІОТЕК ДИНАМІЧНОГО КОМПОНУВАННЯ ТА ЇХ ВИКОРИСТАННЯ В РЕЖИМІ НЕЯВНОГО ЗВ’ЯЗУВАННЯ
Мета: Ознайомитись з технологією створення та використання бібліотек динамічного компонування з використанням неявного зв’язування.
Теоретичні відомості:
DLL (англ. Dynamic-link library — динамічно завантажувана бібліотека) — реалізовані компанією Microsoft загальні бібліотеки в ОС Windows. Як правило бібліотеки мають розширення файлу *.dll, *.ocx (для бібліотек, що містять елементи керування ActiveX) або *.drv (драйвери старих версій ОС). Структура DLL така сама, як і в PE-файлів (Portable Executable) для 32-, 64-розрядних Windows, та New-Executable (NE) для 16-бітових Windows.
DLL може містити 2 типи функцій: експортні та внутрішні. Експортні функції визначаються за допомогою ключового слова __declspec(dllexport) і можуть бути викликані з програм, що завантажили динамічну бібліотеку, яка містить ці функції. Внутрішні функції – це функції, які використовуються в середині DLL і не можуть бути викликані ззовні.
ЗАВДАННЯ
8.Написати програму, що здійснює в деякому тексті заміну заданих слів (врахувати, що слова можуть мати різну довжину!)
Код програми:
Файл .dll
corrText.h
#ifndef _corrText_H_
#define _corrText_H_
#include <iostream>
#include <string>
#include <stdio.h>
#include <sstream>
#include <conio.h>
using namespace std;
extern "C" __declspec(dllexport) void corrText();
#endif
Код.срр
#include "corrText.h"
extern "C" __declspec(dllexport) void corrText()
{
string source;
cout << "Vvedit' text: ";
getline(cin, source);
const string pattern="new";
const string substitutiоn="cool";
const int pattern_length = pattern.length();
ostringstream result;
int previous = 0;
int matches_count = 0;
for (
int positiоn = source.find(pattern);
positiоn != string::npos;
positiоn = source.find(pattern, positiоn + 1)
)
{
if (previous != positiоn)
result << source.substr(previous, positiоn - previous);
result << substitutiоn;
previous = positiоn + pattern_length;
matches_count++;
}
const int source_length = source.length();
if (previous < source_length)
result << source.substr(previous, source_length - previous);
cout << "Zbigiv \"" << pattern << "\" najdeno: " << matches_count << endl;
cout << "Novij text: " << result.str() << endl;
getchar();
}
Виклик файлу .dll
#include <conio.h>
#include "corrText.h"
void main()
{
corrText();
getch();
}
Підключення бібліотек імпорту в проект:
Результат виконання:
Відбулась заміна слова «new» на слово «cool».
Висновок:
Я ознайомився з технологією створення та використання бібліотек динамічного компонування з використанням неявного зв’язування.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!