DLL и Дельфи

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

>

const

Errcode : Integer=978987;//код ошибки - может быть абсолютно любым.

var

Num1, Num2, Result_ : Integer;//для проверки чисел

Operation : String;//операция, для передачи параметра функции

begin

try //прежде чем передать числа

Num1 := StrToInt(Num1Edit.Text); //функции проверим их

Num2 := StrToInt(Num2Edit.Text);

except

Num1Edit.Text := "0";

Num2Edit.Text := "0";

ResultEdit.Text := "Введите ЧИСЛA";

EXIT;

end;

Operation := OpEdit.Text; //также проверим, введена ли правильная команда.

if (Operation"multiply")

and(Operation"mod") then

begin

ResultEdit.Text := "Введите корректную команду";

Exit;

end;

//до этого момента код остался без изменений.

@MyFunc := nil; //очищаем адрес функции

LibHandle := LoadLibrary("Project2.dll");//пытаемся загрузить библиотеку

if LibHandle >= 32 then

begin //если все прошло успешно то

@MyFunc := GetProcAddress(LibHandle, "MathFunc");//пытаемся найти адрес функции

if @MyFunc <> nil then //если адрес найден (функция существует в библиотеке)

Result_ := MyFunc(Num1, Num2, Errcode, PChar(Operation)); //использование библиотечной функции

if Result_=Errcode then //если функция возвратила код ошибки то

begin //то сообщаем об этом.

ResultEdit.Text := "ОШИБКА";

EXIT;

end

else //а если результат отличный от кода ошибки

ResultEdit.Text := IntToStr(Result_);//то выводим его}

end;

end;

Заключение

В этой статье мы коснулись лишь основных аспектов программирования с применением динамически-подключаемых библиотек. А ведь в DLL можно хранить всякие картинки и даже формы! С помощью них удобно создавать всякие плагины. Но это уже совсем другая история

Список литературы

Для подготовки данной работы были использованы материалы с сайта