procedure Res(I,F:integer; var R:integer);external;
Мне кажется, здесь нужно явно указать соглашение о вызове, у Вас это "pascal":
Код:
procedure Res(I,F:integer; var R:integer);pascal;external;
Бывают register, cdecl, pascal, stdcall, пишут, что при включенной директиве оптимизации {$O+} идёт "register". Может, в этом проблема?
Поисковик находит вроде примеры по запросу "pascal cdecl" и подобным - попробуйте поискать.
-- Вс июн 06, 2010 00:41:00 --у Вас это "pascal"
Или подождите... Если бы это был "pascal", то тогда при возврате нужно было бы чистить стек: "ret 6"... Получается, что cdecl подразумевался (только я что-то в порядке параметров запутался), но не был указан?
Вот пример, хотя там нет явного указания соглашения.