Заказать дипломную работу в Минске. Дипломы на заказ На главную

Подробно о нас

Стоимость работ

Счет для оплаты

Реклама на сайте

Тяжкороб Д.В. помогает с дипломами в Минске
Артемков Д.В. помогает с дипломами в Минске



ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ №6

Условием выполнения данной работы является выполненная (и имеющаяся в наличии) предыдущая работа.
Для всех вариантов необходимо выполнить следующее:

  • функции, определенные в работах 4 и 5, оформить в виде библиотеки DLL;
  • создать новый проект для демонстрации работы с DLL и функциями;
  • в нечетных номерах заданий необходимо использовать динамическое связывание без импорта, в четных – статическое связывание с импортом;
  • при динамическом связывании необходимо в проекте с главной программой объявить указатели на функции, содержащиеся в DLL (см. п. 2.4.4);
  • при статическом связывании необходимо создать специальный заголовочный файл с объявлениями функций (см. п. 2.4.3);

ПРИМЕРЫ

1) Динамическое связывание:

Файл MyDate.cpp

struct Date { //... }; __declspec(dllexport) void GetDate(Date * d) { //... } //...
Текст основной программы
struct Date { //... } typedef void(__cdecl * PFGETDATE)(Date *); //... typedef void (__cdecl * PFWRITEDATE)(char *, Date *, int); //... void main() { HANDLE hLibrary; PFGETDATE pfGetDate; //... Date dt; hLibrary = LoadLibrary("MyDate.dll"); if (!hLibrary) return; pfGetDate = (PFGETDATE)GetProcAddress(hLibrary,"GetDate"); if (pfGetDate) pfGetDate(&dt); //... FreeLibrary(hLibrary); }

2) Статическое связывание:

Заголовочный файл MyTime.h

#ifndef MYLIBAPI #define MYLIBAPI __declspec(dllimport) #endif MYLIBAPI struct Time { //... }; MYLIBAPI void GetTime(Time *); //... void WriteTime(char *, Time *, int); //... Файл MyTime.cpp #define MYLIBAPI __declspec(dllexport) #include "MyTime.h" MYLIBAPI void GetTime(Time * t) { //... } //...
Текст основной программы
//укзание компоновщику, что при компоновке необходимо использовать MyTime.lib #pragma comment(linker, "MyTime.lib") #include "MyTime.h" void main() { Time t; GetTime(&t); //... }





Минск 2012 - 2016
© ИП Тяжкороб Д.В. УНП 490520112



Репетитор история математика русский язык физика химия минск Минск английский язык немецкий язык репетитор белорусский язык вокал музыка рисунок обществоведенье Спрос на репетиторство растет. К нам обращаются много учащихся. Репетиторы (Минск)