Есть dll, в ней функция с шестью строковыми параметрами.
пишу джоб
Код:
static void TestFunction(Args _args)
{
DLL MyDLL = new DLL("SomeDll.dll");
DLLFunction MyFunction = new DLLFunction(MyDLL, "SomeFunction");
;
MyFunction.arg(ExtTypes::String, ExtTypes::String, ExtTypes::String, ExtTypes::String, ExtTypes::String, ExtTypes::String);
MyFunction.call("text1","text2","text3","text4","text5","text6");
}
при выполнении говорит что "Значение регистра ESP не было сохранено при вызове функции "SomeFunction" в библиотеке DLL "SomeDll.dll". Причиной может являться вызов функции DLL, которая объявлена с неверным числом аргументов."
Функция DLL точно сожержит шесть строковых параметров. При вызове из проекта написанного в дельфи
Код:
var
Form1: TForm1;
procedure MyFunc(Param1,Param2, Param3,Param4, Param5,Param6:string ); external 'SomeDll.dll' name 'SomeFunction';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MyFunc('text1','text2','text3','text4','text5','text6');
end;
работает без проблем.
Что я сделал не правильно и как исправить?