Реферат: DLL и Дельфи
library Project2;
uses
SysUtils,
Classes;
function MyFunc(num1, num2, Errcode : Integer; Operation : PChar) : Integer; stdcall;
begin
try
if Operation="plus" then
Result := num1+num2;
if Operation="minus" then
Result := num1-num2;
if Operation="multiply" then
Result := num1*num2;
if Operation="div" then
Result := num1 div num2;
if Operation="mod" then
Result := num1 mod num2;
except Result := Errcode;
end;
end;
exports
MyFunc INDEX 1 NAME "MathFunc";
begin
end.
Сохраните это все куда нибудь и скомпилируйте (Ctrl+F9)
Это будет демонстрационная библиотека, на которой я буду показывать различные приемы работы с DLL. Но для начала давайте рассмотрим текст этой библиотеки.
function MyFunc(num1, num2, Errcode : Integer; Operation : PChar) : Integer; - это обычная функция, возвращающая целое число. Основываясь на параметре Operation функция решает, какую операцию сделать над операндами num1 и num2. В случае ошибки она возвращает переданный ей параметр Errcode. Т.е. в программе можно будет проанализировать, возникла ли ошибка во время исполнения функции.
stdcall указывает на то, что функция будет вызываться "обычным" способом, т.е. программы, написанные на других языках тоже смогут пользоваться библиотекой. Можно использовать - "register", предназначенным только для использования программами, написанными в среде дельфи, но тогда программы, написанные не в дельфи не смогут обращаться к этой функции.
exports