компилирую в FPC следующую DLL:
- Код: Выделить всё
library mydll;
uses
SysUtils, Windows;
procedure Test();
var
i,i2,i3: integer;
begin
try
i:=100;
i2:=0;
i3:=i div i2; // Попытка деления на ноль
except
on EDivByZero do
MessageBoxA(0,'Попытка деления на ноль перехвачена в библиотеке','',MB_OK);
end;
end;
exports
Test name 'Test';
begin
end.
В экспортируемой из этой библиотеки функции Test происходит деление на ноль.
Далее в FPC компилирую програмульку, вызывающую функцию Test из этой библиотеки:
- Код: Выделить всё
program project;
uses
SysUtils, Windows;
procedure Test; external 'mydll.dll';
begin
try
Test;
except
on EDivByZero do
MessageBoxA(0,'Попытка деления на ноль перехвачена в программе','',MB_OK);
end;
end.
Проблема состоит в том, что блок try..except в библиотеке не обрабатывает это исключение, обработка исключения происходит только в программе, а мне нужно, чтобы обработка происходила именно в библиотеке и не выходила наружу.
Подскажите, пожалуйста, как можно исправить данную ситуацию?