Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 23

// выполним перезапись через файл

  handle = open(FileName, O_CREAT|O_TRUNC|O_BINARY|O_RDWR     );

  if(handle != -1)

    {

    write(handle, str, 64);

    write(handle, buf, strlen(buf));

    }

  close(handle);

  hLib=GetModuleHandle(DLL_LAB2); // проверка загрузки

  if(hLib==NULL)

     hLib=LoadLibrary(DLL_LAB2);// вызываем DLL

  DLLPROC DinProc=(DLLPROC)GetProcAddress(hLib,"SearchConRTF");

  if (DinProc != NULL)

      count=DinProc();// вызов функции DLL

  (void)FreeLibrary(hLib);

  Edit2->Text=IntToStr(count); // вывод результата поиска

  RichEdit1->Lines->LoadFromFile(FileName);

// удалить буфер

  delete buf;

}

//---------------------------------------------------------------------------

22. В заголовочном файле <unit>.hpp ввести имя DLL-модуля. Пример приведен ниже.

#define DLL_LAB2       "Lab2d.dll"       //

23. Выполнить компиляцию. Устранить ошибки и проверить правильность выполнения функции.

24.  Для отладки DLL-модуля выполнить  действия по п.12.

Контрольные задания и вопросы:

1.  Привести алгоритмы загрузки DLL-модулей в адресное пространство приложения.

2.  Каким образом осуществляется передача переменных между ЕХЕ-модулей и DLL-модулем?

3.  Разработать обмен переменными между «динамическим» DLL-модулей и ЕХЕ-модулем через вызов функции.

4.  Разработать обмен переменными между «динамическим» DLL-модулей и ЕХЕ-модулем через буфер обмена Clipboard [3].

5.  Предусмотреть активизацию кнопки «Преобразовать в Ansi» только в том случае, если русский текст не читаем.

6.  Предусмотреть блокировки кнопок управления программой от неправильных действий оператора (защита от «дурака»).

Требования к отчету:

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

титульный лист;

задание;

алгоритмы проецирования DLL-модуля на адресное пространство приложения;

листинги основных процедур;

структуру приложения с учетом DLL-модулей;

ответы на контрольные задания и вопросы.

Отчет должен быть выполнен чисто и аккуратно. При оформлении отчета рекомендуется использовать различные текстовые и графические редакторы. Студент, допустивший отклонения от требований, к защите работы не допускается.


8 ЛАБОРАТОРНАЯ РАБОТА №8. ИСПОЛЬЗОВАНИЕ КОМПОНЕНТ ACTIVEX/OCX ДЛЯ ВЫВОДА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

Целью данной работы является изучение способов интеграции компонентов ActiveX в разрабатываемое приложение и использование стандартных компонентов ActiveX для построения разнообразных диаграмм и графиков.

Задание

Разработать приложение, обеспечивающее просмотр частотно-модулированного сигнала оцифрованного 8-разрядным АЦП. На экран необходимо вывести осциллограмму сигнала длительностью 512 точек и спектр отображаемого сигнала.

Компонента ChartFX

Для построения на форме разнообразных графиков и диаграмм используется компонента ChartFX вкладки ActiveX.

Дважды щелкнув мышью по компоненте или выбрав опцию Properties из ее контекстного меню, вы откроете диалоговое окно установок вида и множества других характеристик диаграммы. Свойства, методы и события компоненты ChartFX обеспечивают выполнение следующих основных операций над диаграммами и графиками:

·  создание простых диаграмм;

·  передача исходных данных в новую диаграмму;

·  редактирование данных в существующей диаграмме;

·  изменение легенд, заголовок и других визуальных атрибутов диаграммы (видов, цветов, орнаментов заливки, шрифтов, координатных сеток и т.д.);

·  создание инструментов и других визуальных элементов управления диаграммой.

Подробное руководство по использованию компоненты ChartFX можно вызвать из справочной службы при нажатии клавиши Ctrl+F1 (файл справки – с:\…\Borland\Cbuilder5\OCX\CHARTFX\cfx2ocx.hlp).

Порядок выполнения лабораторной работы №8

Лабораторная работа должна выполняться в следующем порядке: