Уважаемые, вот столкнулся с такой проблемой: требуется на C# вызвать
функцию, реализованную в DLL, НО DLL написана на Delphi!!!
MSDN читал, MessageBox вызывать научился

Проблема IMHO в передаче параметров. Установлено опытным путем, что для
паскалевской функции
function Test(var a:integer) : integer;export;
begin
Result := a;
end;
при вызове ее так
[DllImport("mydll", CallingConvention = CallingConvention.StdCall)]
public static extern int Test(int a);
Результатом является всегда одно и тоже число, причем независипо от
CallingConvention и передачи параметра ref или [In, Out].
Но это все цветочки, а вот ягодки здесь: функция, которую надо вызвать такая:
function LInv(var n : integer; //размер динамических массивов
var dReIn : array of double;//динамический массив (вход)
var dImIn : array of double;//динамический массив (вход)
var dReOut : array of double;//динамический массив (выход)
var dImOut : array of double//динамический массив (выход)
) : integer;export;
Если не понятно, то Функция обрабатывает первые два массива и записывает значения
во вторые два массива. Результат функции — код ошибки. Если вызывать из
Delphi, то все работает отлично.
Подскажите, если кто сталкивался, как можно такую функцию на C# вызвать.
Я уже много всяких вариантов перепробовал,
осталось только исполнить танец с бубном вокруг компьютера — авось заработает.
(Переписать функцию не предлагать, это физически невозможно!)
Leonid, Dr-L@yandex.ru