remobjects / pascalscript

pascalscript
Other
450 stars 182 forks source link

Delphi Linux variant parameter #218

Open LeventeKocsis opened 4 years ago

LeventeKocsis commented 4 years ago

Hi,

I compiled successfully the project with Linux target, but when I add an external function with variant parameter, I'm getting could not call proc error.

I modified sample2 and added a function with variant parameter,

sample2.zip

Best regards.

LeventeKocsis commented 4 years ago

I found then problem:

In InvokeCall.inc, where the arguments are handled, is missing the btVariant, please add the following line: btVariant: Arg := TValue.From(PVariant(fvar.dta)^);

In the same function, where the result type is handled, please add the following line: btVariant: PVariant(res.dta)^ := Variant(Invoke(Address,Args,SysCalConv,TypeInfo(Variant),False,IsConstr).AsType<Variant>());