Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Перевод синтаксиса Delphi->Builder


Автор: KoliaMor 18.3.2008, 11:14
Не получается перевести на Builder следующий код

Код


function TForm1.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; 
  var Params: Variant): Variant; 
begin 
.........
end;



Я перевел так
Код

Variant __fastcall TForm2::CallMethod(TObject *Instance,TClass ClassType,const AnsiString MethodName,Variant &Params)
{

}


CallMethod используется в библиотеке FastScript 

При его вызове 
Код

fsScript1->AddMethod("procedure SetOutputs(outputs: Integer):Integer", CallMethod);

Builder ругается:

[C++ Error] Algoritm.cpp(153): E2193 Too few parameters in call to '_fastcall TfsScript::AddMethod(const AnsiString,Variant (_fastcall * (_closure )(TObject *,TMetaClass *,const AnsiString,Variant &))(TObject *,TMetaClass *,const AnsiString,Variant &),const AnsiString,const AnsiString)'
[C++ Error] Algoritm.cpp(154): E2193 Too few parameters in call to '_fastcall TfsScript::AddMethod(const AnsiString,Variant (_fastcall * (_closure )(TObject *,TMetaClass *,const AnsiString,Variant &))(TObject *,TMetaClass *,const AnsiString,Variant &),const AnsiString,const AnsiString)'

Что я делаю не так?   smile 


Автор: ama_kid 18.3.2008, 11:48
Цитата(KoliaMor @  18.3.2008,  11:14 Найти цитируемый пост)
Что я делаю не так?
Есть подозрение, что не указываешь эти два параметра при вызове....
Цитата(KoliaMor @  18.3.2008,  11:14 Найти цитируемый пост)
...Variant &),const AnsiString,const AnsiString)

P.S. Подхожу чисто формально, потому что FastScript не юзал...

Автор: KoliaMor 18.3.2008, 12:46
Да так заработало. Спасибо.

Странно в примере у них используется только ф-я void __fastcall AddMethod(const AnsiString Syntax, TfsCallMethodEvent CallEvent);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)