ЗАДАНИЕ XXXI

Тема: Изучение работы с функциями
Цель: Знакомство с динамически подключаемыми функциями, написанными на других языках программирования

Введение

Для расширения возможностей в среде имеется механизм добавления функций из динамически подключаемых библиотек (Dynamic Link Libraries, DLL). Данные библиотеки являются стандартными для Windows и могут создаваться на языках программирования C++, Pascal или других. Для подключения к среде Stratum необходимо создать текстовый файл, описывающий содержащиеся в библиотеке функции

Задание 1. Создание своей Dll

Допустим, для увеличения скорости вычислений проекта потребовалось создать новую математическую функцию. Рассмотрим на примере функции

lab22_1.gif (220 bytes)

Создайте на каком нибудь языке программирования Dll библиотеку, содержащую данную функцию. Для Borland C++ текст функции может выглядеть так:

#include <math.h>
extern "C" double __export __stdcall sqrx(double a, double b)
{
return sqrt(a*a + b*b);
};

Задание 2. Подключение Dll к проекту

Чтобы Stratum смог "увидеть" новую функцию, необходим специальный текстовый файл ее описания (определяется по расширению *.TDL). Создайте в любом редакторе текстовый файл в кодировке DOS - sqrx.tdl:

DLL "sqrx.dll" 32 preload
name "sqrx","sqrx" arg "FLOAT","FLOAT" ret "FLOAT"

Примечание. Подробно узнать о правилах написания такого файла Вы можете в разделе "Динамически подключаемые библиотеки функций (DLL)" справочной системы Stratum.

Создайте новый проект. Для того, чтобы иметь возможность вызывать функцию, просто поместите файл sqrx.tdl в каталог этого проекта. Если необходимо, чтобы функция была доступна во всех проектах, поместите его в каталог Stratum 2000/Library.

Примечание. В данном примере Stratum читает данные из файлов *.tdl только в момент загрузки проекта. Поэтому закройте Ваш проект и откройте его снова.

Создайте имидж и проверьте работоспособность новой функции, например:

x := sqrx(3,4)