Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №5.pdf
Скачиваний:
4
Добавлен:
27.05.2023
Размер:
798.9 Кб
Скачать

4

#define ILS_MY_2ND_DEVICE 7001

// –––––––––––––––––––––––- и т.д. для всех устройств int dev0;

LPSYSPARAM sysp;

DWORD __stdcall devGetDevices(

int n0, // Индекс первого устройства (получаем от основной программы) LPSYSPARAM _sysp,//Указатель на параметры системы (общие для всех библиотек) SA_PROC* saproc, // Указатель на основной массив процедур устройств HIMAGELIST himl // Набор иконок всех устройств

)

{

int i;

// Инициализируем глобальные переменные полученными данными sysp = _sysp;

dev0 = n0;

/* Очень удобно задать индекс, соответствующий самому первому устройству в вашей библиотеке, и использовать его при определении порядкового номера устройства. Например, порядковый номер

ILS_MY_1ST_DEVICE-ILS_NULL=0 (отсчет с нуля) А при обращении к ресурсу устройства (например, иконке) используется собственно индекс, например ILS_MY_1ST_DEVICE

*/

// Вызываем служебную функцию инициализации

lpDeviceBase* devs = init_base_device( n0, MAX_DEVS, saproc );

//Заполняем массив указателей на базовое устройство адресами производных устройств devs[ILS_MY_1ST_DEVICE-ILS_NULL] = new my1stdevice; devs[ILS_MY_2ND_DEVICE-ILS_NULL] = new my2nddevice;

//–––––––––––––––––––––––- и т.д. для всех устройств

//Заполняем наш сектор иконок

for (i = n0; i < n0+ MAX_DEVS; i++) ImageList_ReplaceIcon(himl, i,

LoadIcon(hInst, MAKEINTRESOURCE(i+ILS_NULL-n0))); return 1; // Нормальное завершение

}

Более подробно процесс написания устройств приведен в файле userdll2.doc

в папке spectr/doc.

1.3Содержание отчета

Отчет к лабораторной работе должен содержать:

1.Текст задания, вариант.

2.Листинг программы.

3.Скриншот подтверждения верной работы устройства.

5

1.4Варианты задания

Для определения варианта используется номер студенческого билета (последняя цифра) N и номер в списке журнала группы k. X = k%11;

Вариант

Устройство

 

Описание

 

 

Количество

Количество

(x)

 

 

 

 

 

входов

выходов

1

Выбор

 

На каждом

такте

N

1

 

максимума

 

выбирается

 

 

 

 

 

 

максимальное

 

 

 

 

 

 

значение и выдается

 

 

 

 

 

на выход

 

 

 

 

2

Деление

на

Входные

отсчеты

N

N

 

константу

 

делятся на константу

 

 

 

 

 

(N) и подаются на

 

 

 

 

 

соответствующие

 

 

 

 

 

выходы

 

 

 

 

3

Инвертер

 

Все входные отсчеты

N

N

 

 

 

меняют

знак

и

 

 

 

 

 

подаются на выход

 

 

4

Интегратор

 

Входные

отсчеты

N

N

 

 

 

накапливаются

и

 

 

 

 

 

подаются

 

на

 

 

 

 

 

соответствующие

 

 

 

 

 

выходы

 

 

 

 

5

Ограничитель

Если уровеньотсчета

N

N

 

уровня

 

на соответствующем

 

 

 

 

 

выходе больше N, то

 

 

 

 

 

он равен N

 

 

 

 

6

Перемножитель

Перемножаются

N

1

 

 

 

отсчеты

со

всех

 

 

 

 

 

входовиподаютсяна

 

 

 

 

 

выход

 

 

 

 

7

Сумматор

 

Суммируются

 

N

1

 

 

 

отсчеты

со

всех

 

 

 

 

 

входовиподаютсяна

 

 

 

 

 

выход

 

 

 

 

8

Усилитель

 

Отсчет с

каждого

N

N

 

 

 

входа усиливается в

 

 

 

 

 

k раз

 

 

 

 

9

ГТИ

 

Генерируется

 

0

1

 

 

 

тактовый

сигнал с

 

 

6

 

 

шириной

N+1 и

 

 

 

 

периодом 2*(N+1)+1

 

 

10

Генератор

Генерируется сигнал

0

1

 

Синус

с частотой

сигнала

 

 

 

 

N*1000 Гц

 

 

 

11

Генератор

Генерируется сигнал

0

1

 

Пилообразный

с периодом N

 

 

 

 

 

 

 

 

 

 

 

 

 

1.5 Приложение А Настройки проекта Visual Studio для создания библиотеки

Необходимо создать пустой проект.

В настройках проекта необходимо выбрать платформу «WIN32». После этого «Свойства конфигурации» - «Общие» и в пункте «Тип конфигурации» выбрать «Динамическая библиотека (.dll)».

Рисунок 2 Выбор типа конфигурации

Затем там во вкладке «Дополнительно»в пункте «Набор символов»выбрать«Не задано»

7

Рисунок 3 Настройки набора символов

После этого во вкладке «С/С++» - «Общие» в пункте «Дополнительные каталоги включаемых файлов» указать путь до папки include, которая находится в папке sdk.

Рисунок 4 Путь к дополнительным заголовочным файлам

В разделе "Свойства конфигурации -> Компоновщик -> Ввод" добавить в "Дополнительные зависимости" библиотеку comctl32.lib;

А в разделе «Файл определения модуля» указать имя файла .def

Соседние файлы в предмете Программирование на C++