I have a compiled program with MathLink.
I want to use it from other C program, without Mathematica being involved at all.
If i create my program with MathLink and connect to this external program, than i get number packets with number of functions:
DefineExternal ["funcname[]" , "{ }" , 89 ]
that registers these functions as external in Mathematica.
How could i, from my C programm, call analog of Mathematica CallPacket[89,{}] function to call "funcname".
Sending directly MLPutFunction(lp, "funcname") to this external application does not seems to be working, as, i suppose, it is intended to be used only for communication from external program with Mathematica, or?
Tell me more
×
Mathematica Stack Exchange is a question and answer site for
users of Mathematica. It's 100% free, no registration required.
|
|
|||
|
Thank you very much Oleksandr, it works. There should be empty List even when no arguments.
|
|||
|
|
MLPutFunction(lp, "funcname")--functions must be called by ordinal as MathLink programs don't have access to the Mathematica interpreter. Instead useMLPutFunction(lp, "CallPacket", nargs+1); MLPutInteger(lp, ord); /* put any arguments on the link here */ MLEndPacket(lp);. See the book MathLink: Network Programming with Mathematica by Chikara Miyaji and Paul Abbott for more information. – Oleksandr R. Aug 15 '12 at 9:52List, not given as a sequence. (That's why this is just a comment: no time to give a properly debugged answer now. I'm sure you'll be able to figure it out for yourself--and when you get a working solution, feel free to self-answer.) – Oleksandr R. Aug 15 '12 at 10:16