This is a virtual function: it is held by the struct.
Either you use a virtual member:
public struct JavaVM {
public virtual int get_env (...);
}
Or a delegate:
public delegate GetEnvFunc (...);
public struct JavaVM {
GetEnvFunc get_env;
}
I did not test the first option and it's likely to only work with
classes, so you might have to use a compact class.
Le lundi 08 août 2016 à 14:49 +0200, marcin saepia net a écrit :
Hello,
I am writing VAPI to the Java Native Interface.
I have there JavaVM struct.
In my function I get pointer to one.
I would like to call its member function, like this:
(*vm)->GetEnv(...)
When I define my VAPI in such way
[CCode (cname = "JavaVM")]
public struct JavaVM {
[CCode (cname = "GetEnv")]
public int get_env(out unowned Env env, Version version);
}
I am getting C Code
GetEnv(vm, param1, param2)
instead of
(*vm)->GetEnv(param1, param2)
How can I write VAPI to achieve the second result in the C code?
Marcin
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list
-- Guillaume Poirier-Morency <guillaumepoiriermorency gmail com> Étudiant au baccalauréat en Informatique à l'Université de Montréal Chercheur boursier à l'IRIC Mon blog: https://arteymix.github.io/ Clé PGP: B1AD6EA5
Attachment:
signature.asc
Description: This is a digitally signed message part