The new interface looks like this:

      var sresult = Dynlink::func1[int,string] (linst, "setup") (config);

This actually calls the function. But you can store it for later calls:

      var setup = Dynlink::func1[int,string] (linst, "setup");

This is wise if there's more than one call to avoid dlsym being called
each time.

The type coding is: 

func1[RETURN, ARGUMENT0]


and there's a func0 and func2 as well, and also
proc0, proc1, proc2. Will add more if we need more
arguments.

These functions encapsulate the thread-frame object in the closure
so you don't need to worry about it.


These functions ONLY work with 

        export fun

Another set is required for

        export cfun

The latter functions do not have a thread frame, so the
C level interface is different by one argument.

The above functions aren't the ultimate in ease of use but they're
better than what we had before.

If you get the type of your function wrong .. hell will break out.

Note: the types you give do not have to be "the same" as in the
plugin, but they must be "layout compatible".


--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to