Обстоятельства изменились. Теперь так: есть пара функций в DLL следующего вида:
PHP код:
function RetString(s: PChar): PChar;
begin
result := s;
end;
function RetInteger(i: Integer): Integer;
begin
result := i;
end;
При их вызове из axapta вот таким путём:
PHP код:
retString.returns(ExtTypes::String);
retString.arg(ExtTypes::String);
s = retString.call('My String');
или вот так соответственно:
PHP код:
retInteger.returns(ExtTypes::DWord);
retInteger.arg(ExtTypes::DWord);
i = retInteger.call(2);
получаем ошибку:
Значение регистра ESP не было сохранено при вызове функции 'RetString' в библиотеке DLL 'retdata'. Причиной может являться вызов функции DLL, которая объявлена с неверным числом аргументов.
Есть предположения, что это значит и как бороться?